Here, we calculate the Trophic magnification factor (TMF) for all those studies that do not report such value and/or its standard error. The TMF is calculated using PFAS concentrations and trophic levels (or stable nitrogen isotope values) data extracted from the included studies.

Data wrangling

# Uploading data
raw_data <- read.csv(here("metaDigitise/Raw_data.csv"))
head(raw_data)
##   Study_ID        filename variable                   group_id      mean
## 1    S_052 Cara_2022_1.png     PFOA PFOA, species1, location 5 1.2131816
## 2    S_052 Cara_2022_1.png     PFOA PFOA, species2, location 5 1.2988228
## 3    S_052 Cara_2022_1.png     PFOA PFOA, species3, location 5 1.0097836
## 4    S_052 Cara_2022_1.png     PFOA PFOA, species4, location 5 1.0418991
## 5    S_052 Cara_2022_1.png     PFOA PFOA, species5, location 5 0.9776681
## 6    S_052 Cara_2022_1.png     PFOA PFOA, species1, location 8 1.5718042
##           sd  n  r se error_type  plot_type     software note
## 1 0.48708456 NA NA NA         sd mean_error metaDigitise <NA>
## 2 0.13381444 NA NA NA         sd mean_error metaDigitise <NA>
## 3 0.04282062 NA NA NA         sd mean_error metaDigitise <NA>
## 4 0.15522475 NA NA NA         sd mean_error metaDigitise <NA>
## 5 0.07493609 NA NA NA         sd mean_error metaDigitise <NA>
## 6 0.32115465 NA NA NA         sd mean_error metaDigitise <NA>
# Reshaping Data with pivot_wider
wide_data <- raw_data %>%
  pivot_wider(
    names_from = variable,
    values_from = c(mean, sd),
    names_glue = "{variable}_{.value}"
  )
head(wide_data)
## # A tibble: 6 × 96
##   Study_ID filename     group_id n     r        se error_type plot_type software
##   <chr>    <chr>        <chr>    <lgl> <lgl> <dbl> <chr>      <chr>     <chr>   
## 1 S_052    Cara_2022_1… PFOA, s… NA    NA       NA sd         mean_err… metaDig…
## 2 S_052    Cara_2022_1… PFOA, s… NA    NA       NA sd         mean_err… metaDig…
## 3 S_052    Cara_2022_1… PFOA, s… NA    NA       NA sd         mean_err… metaDig…
## 4 S_052    Cara_2022_1… PFOA, s… NA    NA       NA sd         mean_err… metaDig…
## 5 S_052    Cara_2022_1… PFOA, s… NA    NA       NA sd         mean_err… metaDig…
## 6 S_052    Cara_2022_1… PFOA, s… NA    NA       NA sd         mean_err… metaDig…
## # ℹ 87 more variables: note <chr>, PFOA_mean <dbl>, TL_mean <dbl>,
## #   PFUnDA_mean <dbl>, PFTrDA_mean <dbl>, ln_PFOS_mean <dbl>,
## #   ln_PFOA_mean <dbl>, ln_PFNA_mean <dbl>, ln_PFDA_mean <dbl>,
## #   ln_PFUnDA_mean <dbl>, ln_PFDoDA_mean <dbl>, ln_PFTrDA_mean <dbl>,
## #   ln_PFTeDA_mean <dbl>, ln_FOSA_mean <dbl>, PFOS_mean <dbl>,
## #   delta_15N_mean <dbl>, PFNA_mean <dbl>, PFDA_mean <dbl>, PFDoDA_mean <dbl>,
## #   PFBA_mean <dbl>, log_PFHxS_mean <dbl>, log_PFOS_mean <dbl>, …

S_052: Cara_2022

  • 3 food webs: location 4, 5, and 8.
  • [PFAS] regressed on the original scale. We log-transformed them before running linear models.
  • Standard deviations were log-scaled using the Delta method (Taylor approximation).
  • Data were extracted from plots (Figure 6) using metaDigitise.
Cara_2022 <- wide_data %>% 
  filter(Study_ID == "S_052") %>%
  setDT() %>% 
  melt(id.vars = c("group_id"), na.rm = TRUE) %>% 
  dcast(group_id ~ variable, value.var = "value", fun.aggregate = max, na.rm = TRUE) %>% 
  mutate(group_id = gsub("^(\\w+\\s[^,]+)", "\\1,", group_id)) %>% 
  separate(group_id, into = c("PFAS", "species", "location"), sep = ",\\s*", extra = "drop")

# Divide the Cara_2022 dataset into locations (food webs).

Cara_2022_loc4 <- Cara_2022 %>% 
  filter(location == "location 4") %>%
  mutate(across(ends_with("mean") | ends_with("sd"), ~ as.numeric(as.character(.)))) %>% 
  mutate(log_PFOA_mean = log10(PFOA_mean)) %>%
  mutate(log_PFOA_sd = PFOA_sd/(PFOA_mean*log(10))) %>% #Delta method (Taylor aproximation)
  select_if(~ !all(is.na(.)))

#write.csv(Cara_2022_loc4, file = here("Rdata", "Cara_2022_loc4.csv"))

Cara_2022_loc5 <- Cara_2022 %>% 
  filter(location == "location 5") %>%
  mutate(across(ends_with("mean") | ends_with("sd"), ~ as.numeric(as.character(.)))) %>% 
  mutate(log_PFOA_mean = log10(PFOA_mean)) %>%
  mutate(log_PFOA_sd = PFOA_sd/(PFOA_mean*log(10))) %>%
  mutate(log_PFUnDA_mean = log10(PFUnDA_mean)) %>%
  mutate(log_PFUnDA_sd = PFUnDA_sd/(PFUnDA_mean*log(10))) %>%
  select_if(~ !all(is.na(.)))

#write.csv(Cara_2022_loc5, file = here("Rdata", "Cara_2022_loc5.csv"))

Cara_2022_loc8 <- Cara_2022 %>% 
  filter(location == "location 8") %>%
  mutate(across(ends_with("mean") | ends_with("sd"), ~ as.numeric(as.character(.)))) %>% 
  mutate(log_PFOA_mean = log10(PFOA_mean)) %>%
  mutate(log_PFOA_sd = PFOA_sd/(PFOA_mean*log(10))) %>%
  mutate(log_PFTrDA_mean = log10(PFTrDA_mean)) %>%
  mutate(log_PFTrDA_sd = PFTrDA_sd/(PFTrDA_mean*log(10))) %>%
  select_if(~ !all(is.na(.)))

#write.csv(Cara_2022_loc8, file = here("Rdata", "Cara_2022_loc8.csv"))

S_013: Martin_2004

  • 3 food webs: benthic, pelagic, and whole food web.
  • Benthic food web only has 2 trophic levels included in the regression. Standard error cannot be calculated.
  • [PFAS] already ln-tranformed.
  • Data were extracted from plots (Figure 3) using metaDigitise.
Martin_2004 <- wide_data %>% 
  filter(Study_ID == "S_013") %>%
  select_if(~ !all(is.na(.))) %>% 
  setDT() %>% 
  melt(id.vars = c("group_id"), na.rm = TRUE) %>% 
  dcast(group_id ~ variable, value.var = "value", fun.aggregate = max, na.rm = TRUE) %>% 
  mutate(group_id = gsub("^(\\w+\\s[^,]+)", "\\1,", group_id)) %>% 
  separate(group_id, into = c("PFAS", "species", "food_web"), sep = ",\\s*", extra = "drop")

Martin_2004_pelagic <- Martin_2004 %>% 
  filter(food_web == "pelagic food web") %>%
  mutate(across(ends_with("mean") | ends_with("sd"), ~ as.numeric(as.character(.))))

#write.csv(Martin_2004_pelagic, file = here("Rdata", "Martin_2004_pelagic.csv"))

Martin_2004_benthic <- Martin_2004 %>% 
  filter(food_web == "benthic food web") %>%
  mutate(across(ends_with("mean") | ends_with("sd"), ~ as.numeric(as.character(.))))

#write.csv(Martin_2004_benthic, file = here("Rdata", "Martin_2004_benthic.csv"))

Martin_2004_whole <- Martin_2004 %>%
  filter(food_web == "whole food web") %>%
  mutate(across(ends_with("mean") | ends_with("sd"), ~ as.numeric(as.character(.))))

#write.csv(Martin_2004_whole, file = here("Rdata", "Martin_2004_whole.csv"))

S_053: Koch_2020

  • 2 food webs: aquatic and riparian
  • [PFAS] regressed on the original scale, although plots have y-axis on the log scale. We log-transformed them before running linear models.
  • Data were extracted from plots (Figure 4) using Webplot Digitizer.
  • [PFAS] regressed against delta15N.
Koch_2020 <- wide_data %>% 
  filter(Study_ID == "S_053") %>%
  select_if(~ !all(is.na(.))) %>% 
  setDT() %>% 
  melt(id.vars = c("group_id"), na.rm = TRUE) %>% 
  dcast(group_id ~ variable, value.var = "value", fun.aggregate = max, na.rm = TRUE) %>% 
  mutate(group_id = gsub("^(\\w+\\s[^,]+)", "\\1,", group_id)) %>% 
  separate(group_id, into = c("PFAS", "species", "food_web"), sep = ",\\s*", extra = "drop") %>% 
  mutate(across(ends_with("mean") | ends_with("sd"), ~ as.numeric(as.character(.)))) %>% 
  mutate(log_PFOS_mean = log10(PFOS_mean))

#write.csv(Koch_2020, file = here("Rdata", "Koch_2020.csv"))

Koch_2020_aquatic <- Koch_2020 %>% 
  filter(food_web == "aquatic food web") %>%
  select_if(~ !all(is.na(.)))
  
#write.csv(Koch_2020_aquatic, file = here("Rdata", "Koch_2020_aquatic.csv"))

Koch_2020_riparian <- Koch_2020 %>% 
  filter(food_web == "riparian food web") %>%
  select_if(~ !all(is.na(.)))

#write.csv(Koch_2020_riparian, file = here("Rdata", "Koch_2020_riparian.csv"))

S_004: Mazzoni_2020

  • 2 food webs: including and excluding zooplankton.
  • [PFAS] regressed on the original scale. We log-transformed them before running linear models.
  • Data were extracted from tables (Table 1 and Table S5).
Mazzoni_2020 <- wide_data %>% 
  filter(Study_ID == "S_004") %>%
  setDT() %>% 
  melt(id.vars = c("group_id"), na.rm = TRUE) %>% 
  dcast(group_id ~ variable, value.var = "value", fun.aggregate = max, na.rm = TRUE) %>% 
  separate(group_id, into = c("PFAS", "food_web", "species"), sep = ",\\s*", extra = "drop") %>% 
  mutate(across(ends_with("mean"), ~ as.numeric(as.character(.))))

Mazzoni_2020_fw1 <- Mazzoni_2020 %>% 
  filter(food_web == "food web 1") %>%
  mutate(log_PFDA_mean = log10(PFDA_mean)) %>%
  mutate(log_PFDoDA_mean = log10(PFDoDA_mean)) %>%
  mutate(log_PFNA_mean = log10(PFNA_mean)) %>%
  mutate(log_PFOS_mean = log10(PFOS_mean)) %>%
  mutate(log_PFUnDA_mean = log10(PFUnDA_mean)) %>%
  select_if(~ !all(is.na(.)))

#write.csv(Mazzoni_2020_fw1, file = here("Rdata", "Mazzoni_2020_fw1.csv"))
  
Mazzoni_2020_fw2 <- Mazzoni_2020 %>% 
  filter(food_web == "food web 2") %>%
  mutate(log_PFDA_mean = log10(PFDA_mean)) %>%
  mutate(log_PFDoDA_mean = log10(PFDoDA_mean)) %>%
  mutate(log_PFNA_mean = log10(PFNA_mean)) %>%
  mutate(log_PFOS_mean = log10(PFOS_mean)) %>%
  mutate(log_PFUnDA_mean = log10(PFUnDA_mean)) %>%
  select_if(~ !all(is.na(.)))

#write.csv(Mazzoni_2020_fw2, file = here("Rdata", "Mazzoni_2020_fw2.csv"))

S_017: Liu_2018

  • 1 food web.
  • [PFAS] regressed on the original scale. We ln-transformed them before running linear models.
  • Data were extracted from tables (Table 1) and plots (Figure 4) using Webplot Digitizer.
Liu_2018 <- wide_data %>% 
  filter(Study_ID == "S_017") %>%
  setDT() %>% 
  mutate(ln_PFBA_mean = log(PFBA_mean)) %>%
  mutate(ln_PFOA_mean = log(PFOA_mean)) %>%
  mutate(ln_PFNA_mean = log(PFNA_mean)) %>%
  mutate(ln_PFDA_mean = log(PFDA_mean)) %>%
  mutate(ln_PFUnDA_mean = log(PFUnDA_mean)) %>%
  mutate(ln_PFDoDA_mean = log(PFDoDA_mean)) %>%
  mutate(ln_PFTrDA_mean = log(PFTrDA_mean)) %>%
  mutate(ln_PFOS_mean = log(PFOS_mean)) %>%
  select_if(~ !all(is.na(.)))

#write.csv(Liu_2018, file = here("Rdata", "Liu_2018.csv"))

S_019: Gao_2020

  • 1 food web.
  • [PFAS] already log-tranformed.
  • Data were extracted from plots (Figure 4) using metaDigitise.
Gao_2020 <- wide_data %>% 
  filter(Study_ID == "S_019") %>%
  select_if(~ !all(is.na(.))) %>%
  setDT()

#write.csv(Gao_2020, file = here("Rdata", "Gao_2020.csv"))

S_021: Chen_2018

  • 1 food web.
  • [PFAS] already ln-tranformed.
  • Data were extracted from tables (Table 6).
Chen_2018 <- wide_data %>% 
  filter(Study_ID == "S_021") %>%
  select_if(~ !all(is.na(.))) %>%
  setDT()

#write.csv(Chen_2018, file = here("Rdata", "Chen_2018.csv"))

S_023: Du_2021

  • 1 food web.
  • [PFAS] already log-tranformed.
  • Data were extracted from plots (Figure 4) using Webplot Digitizer.
Du_2021 <- wide_data %>% 
  filter(Study_ID == "S_023") %>%
  select_if(~ !all(is.na(.))) %>%
  setDT()

#write.csv(Du_2021, file = here("Rdata", "Du_2021.csv"))

S_035: Ren_2022

  • 1 food web: Port Austin (USA), food web including benthic organisms.
  • [PFAS] regressed on the original scale. We log-transformed them before running linear models.
  • Data were extracted from tables (Table 1).
Ren_2022 <- wide_data %>% 
  filter(Study_ID == "S_035") %>%
  select_if(~ !all(is.na(.))) %>%
  setDT() %>% 
  melt(id.vars = c("group_id"), na.rm = TRUE) %>% 
  dcast(group_id ~ variable, value.var = "value", fun.aggregate = max, na.rm = TRUE) %>% 
  separate(group_id, into = c("PFAS", "species"), sep = ",\\s*", extra = "drop") %>% 
  mutate(across(ends_with("mean"), ~ as.numeric(as.character(.)))) %>%
  mutate(log_PFHxS_mean = log10(PFHxS_mean)) %>%
  mutate(log_PFOA_mean = log10(PFOA_mean)) %>%
  mutate(log_PFOS_mean = log10(PFOS_mean)) %>%
  mutate(log_PFNA_mean = log10(PFNA_mean)) %>%
  mutate(log_PFDA_mean = log10(PFDA_mean)) %>%
  mutate(log_PFUnDA_mean = log10(PFUnDA_mean)) %>%
  mutate(log_PFDoDA_mean = log10(PFDoDA_mean)) %>%
  mutate(log_PFTrDA_mean = log10(PFTrDA_mean)) %>%
  mutate(log_PFTeDA_mean = log10(PFTeDA_mean))

#write.csv(Ren_2022, file = here("Rdata", "Ren_2022.csv"))

S_054: Koch_2021

  • 2 food webs: freshwater and terrestrial.
  • [PFAS] already ln-tranformed.
  • [PFAS] regressed against delta15N.
  • Data were extracted from plots (Figure S10) using Webplot Digitizer.
Koch_2021 <- wide_data %>% 
  filter(Study_ID == "S_054") %>%
  select_if(~ !all(is.na(.))) %>%
  mutate(log_PFOS_mean = log10(PFOS_mean)) %>% 
  separate(group_id, into = c("PFAS", "food_web", "species"), sep = ",\\s*", extra = "drop") %>% 
  mutate(across(ends_with("mean"), ~ as.numeric(as.character(.))))
# food web 1 - freshwater
Koch_2021_freshwater <- Koch_2021 %>% 
  filter(food_web == "food web 1")
#write.csv(Koch_2021_freshwater, file = here("Rdata", "Koch_2021_freshwater.csv"))
# food web 2 - terrestrial
Koch_2021_terrestrial <- Koch_2021 %>% 
  filter(food_web == "food web 2")
#write.csv(Koch_2021_terrestrial, file = here("Rdata", "Koch_2021_terrestrial.csv"))

S_056: Li_2008

  • 2 food webs: Tilapia included and excluded.
  • [PFAS] already ln-tranformed.
  • Data were extracted from plots (Figure 3) using Webplot Digitizer.
Li_2008 <- wide_data %>% 
  filter(Study_ID == "S_056") %>%
  select_if(~ !all(is.na(.))) %>% 
  separate(group_id, into = c("PFAS", "food_web", "species"), sep = ",\\s*", extra = "drop") %>% 
  mutate(across(ends_with("mean"), ~ as.numeric(as.character(.))))
# food web 1 - Tilapia excluded
Li_2008_fw1 <- Li_2008 %>% 
  filter(food_web == "food web 1")
#write.csv(Li_2008_fw1, file = here("Rdata", "Li_2008_fw1.csv"))
# food web 2 - Tilapia included
Li_2008_fw2 <- Li_2008 %>% 
  filter(food_web == "food web 2")
#write.csv(Li_2008_fw2, file = here("Rdata", "Li_2008_fw2.csv"))

S_057: Pan_2010

  • 1 food web.
  • [PFAS] regressed on the original scale. We log-transformed them before running linear models.
  • Data were extracted from plots (Figure S1) using Webplot Digitizer.
Pan_2010 <- wide_data %>% 
  filter(Study_ID == "S_057") %>%
  select_if(~ !all(is.na(.))) %>%
  mutate(log_PFCs_mean = log10(PFCs_mean)) %>% 
  mutate(across(ends_with("mean"), ~ as.numeric(as.character(.))))

#write.csv(Pan_2010, file = here("Rdata", "Pan_2010.csv"))

S_058: Van de Vijver_2003

  • 1 food web.
  • [PFAS] regressed on the original scale. We log-transformed them before running linear models.
  • Data were extracted from plots (Figure 3) using Webplot Digitizer.
Van_de_Vijver_2003 <- wide_data %>% 
  filter(Study_ID == "S_058") %>%
  select_if(~ !all(is.na(.))) %>%
  mutate(log_PFOS_mean = log10(PFOS_mean)) %>% 
  mutate(across(ends_with("mean"), ~ as.numeric(as.character(.))))

#write.csv(Van_de_Vijver_2003, file = here("Rdata", "Van_de_Vijver_2003.csv"))

S_061: Barghi_2018

  • 1 food web.
  • [PFAS] regressed on the original scale. We log-transformed them before running linear models.
  • Data were extracted from plots (Figure S2) using Webplot Digitizer.
Barghi_2018 <- wide_data %>% 
  filter(Study_ID == "S_061") %>% 
  setDT() %>%
  select_if(~ !all(is.na(.))) %>%
  mutate(log_PFNA_mean = log10(PFNA_mean)) %>% 
  mutate(across(ends_with("mean"), ~ as.numeric(as.character(.))))

#write.csv(Barghi_2018, file = here("Rdata", "Barghi_2018.csv"))

S_060: Kobayashi_2018

  • 1 food web.
  • [PFAS] on the original scale. We log-transformed them before running linear models.
  • Data were extracted from tables (Table 1).
  • Standard deviations were log-scaled using the Delta method (Taylor approximation).
Kobayashi_2018 <- wide_data %>% 
  filter(Study_ID == "S_060") %>% 
  setDT() %>%
  select_if(~ !all(is.na(.))) %>%
  mutate(log_PFHxS_mean = log10(PFHxS_mean)) %>% 
  mutate(log_PFHxS_sd = PFHxS_sd/(PFHxS_mean*log(10))) %>%
  mutate(log_PFOS_mean = log10(PFOS_mean)) %>% 
  mutate(log_PFOS_sd = PFOS_sd/(PFOS_mean*log(10))) %>%
  mutate(log_PFPeA_mean = log10(PFPeA_mean)) %>% 
  mutate(log_PFPeA_sd = PFPeA_sd/(PFPeA_mean*log(10))) %>%
  mutate(log_PFHxA_mean = log10(PFHxA_mean)) %>% 
  mutate(log_PFHxA_sd = PFHxA_sd/(PFHxA_mean*log(10))) %>%
  mutate(log_PFHpA_mean = log10(PFHpA_mean)) %>% 
  mutate(log_PFHpA_sd = PFHpA_sd/(PFHpA_mean*log(10))) %>%
  mutate(log_PFOA_mean = log10(PFOA_mean)) %>% 
  mutate(log_PFOA_sd = PFOA_sd/(PFOA_mean*log(10))) %>%
  mutate(log_PFNA_mean = log10(PFNA_mean)) %>% 
  mutate(log_PFNA_sd = PFNA_sd/(PFNA_mean*log(10))) %>%
  mutate(log_PFDA_mean = log10(PFDA_mean)) %>% 
  mutate(log_PFDA_sd = PFDA_sd/(PFDA_mean*log(10))) %>%
  mutate(log_PFUnDA_mean = log10(PFUnDA_mean)) %>% 
  mutate(log_PFUnDA_sd = PFUnDA_sd/(PFUnDA_mean*log(10))) %>%
  mutate(across(ends_with("mean"), ~ as.numeric(as.character(.))))

#write.csv(Kobayashi_2018, file = here("Rdata", "Kobayashi_2018.csv"))

S_047: Heimstad_2024

  • 1 food web.
  • [PFAS] regressed on the original scale, although plots have y-axis on the log scale. We log-transformed them before running linear models.
  • Data extracted from plots (Figure S10 - S12) using Webplot Digitizer.
Heimstad_2024 <- wide_data %>% 
  filter(Study_ID == "S_047") %>% 
  setDT() %>%
  select_if(~ !all(is.na(.))) %>% 
  mutate(log_PFDoDA_mean = log10(PFDoDA_mean)) %>%
  mutate(log_PFOS_mean = log10(PFOS_mean)) %>% 
  mutate(log_PFUnDA_mean = log10(PFUnDA_mean))

# write.csv(Heimstad_2024, file = here("Rdata", "Heimstad_2024.csv"))

S_024: Li_2021

  • 1 food web.
  • [PFAS] already log-tranformed.
  • [PFAS] regressed against trophic levels.
  • Data were extracted from plots (Figure 4, Figure S7, Figure S8) using Webplot Digitizer.
Li_2021 <- wide_data %>% 
  filter(Study_ID == "S_024") %>% 
  setDT() %>%
  select_if(~ !all(is.na(.)))

#write.csv(Li_2021, file = here("Rdata", "Li_2021.csv"))

S_025: Pan_2021

  • 1 food web.
  • [PFAS] already log-tranformed.
  • [PFAS] regressed against trophic levels.
  • Data were extracted from plots (Figure 5) using Webplot Digitizer.
Pan_2021 <- wide_data %>% 
  filter(Study_ID == "S_025") %>% 
  setDT() %>%
  select_if(~ !all(is.na(.)))

#write.csv(Pan_2021, file = here("Rdata", "Pan_2021.csv"))

S_059: Jiao_2023

  • 1 food web.
  • [PFAS] measured in several tissues.
  • [PFAS] already ln-tranformed.
  • [PFAS] regressed against trophic levels.
  • Data were extracted from plots (Figure 4c) using Webplot Digitizer.
Jiao_2023 <- wide_data %>% 
  filter(Study_ID == "S_059") %>% 
  setDT() %>%
  separate(group_id, into = c("PFAS", "tissue", "species"), sep = ",\\s*", extra = "drop") %>% 
  mutate(across(where(is.character), ~na_if(., ""))) %>% 
  select_if(~ !all(is.na(.)))

#write.csv(Jiao_2023, file = here("Rdata", "Jiao_2023.csv"))

# Divide the Jiao_2023 dataset into tissues.

Jiao_2023_blood <- Jiao_2023 %>% 
  filter(tissue == "blood")
#write.csv(Jiao_2023_blood, file = here("Rdata", "Jiao_2023_blood.csv"))
Jiao_2023_gill <- Jiao_2023 %>% 
  filter(tissue == "gill")
#write.csv(Jiao_2023_gill, file = here("Rdata", "Jiao_2023_gill.csv"))
Jiao_2023_heart <- Jiao_2023 %>% 
  filter(tissue == "heart")
#write.csv(Jiao_2023_heart, file = here("Rdata", "Jiao_2023_heart.csv"))
Jiao_2023_liver <- Jiao_2023 %>% 
  filter(tissue == "liver")
#write.csv(Jiao_2023_liver, file = here("Rdata", "Jiao_2023_liver.csv"))
Jiao_2023_kidney <- Jiao_2023 %>% 
  filter(tissue == "kidney")
#write.csv(Jiao_2023_kidney, file = here("Rdata", "Jiao_2023_kidney.csv"))
Jiao_2023_pancreas <- Jiao_2023 %>% 
  filter(tissue == "pancreas")
#write.csv(Jiao_2023_pancreas, file = here("Rdata", "Jiao_2023_pancreas.csv"))
Jiao_2023_muscle <- Jiao_2023 %>% 
  filter(tissue == "muscle")
#write.csv(Jiao_2023_muscle, file = here("Rdata", "Jiao_2023_muscle.csv"))

Linear models

S_052: Cara_2022

  • It provides standard deviations of individual observations. Weights were assigned (inverse of square standard deviation).

First food web - “location 4”

Cara_2022_loc4 <- read.csv(here("RData", "Cara_2022_loc4.csv"))

Cara_2022_loc4_PFOA_weights <- 1 / (Cara_2022_loc4$log_PFOA_sd^2) # weights as the inverse of square standard deviation. Please note we are taking the assumption that n is exactly the same for each observation. This is an assumption that must be taken in order to use the standard deviation of observations as weights.

Cara_2022_loc4_lm_model_PFOA <- lm(log_PFOA_mean ~ TL_mean, 
                                   data = Cara_2022_loc4,
                                   weights = Cara_2022_loc4_PFOA_weights)

Cara_2022_loc4_PFOA_slope <- coef(Cara_2022_loc4_lm_model_PFOA)["TL_mean"]
#plot(residuals(Cara_2022_loc4_lm_model_PFOA))
#coeftest(Cara_2022_loc4_lm_model_PFOA, vcov. = vcovHC)
# or
summary(Cara_2022_loc4_lm_model_PFOA)
## 
## Call:
## lm(formula = log_PFOA_mean ~ TL_mean, data = Cara_2022_loc4, 
##     weights = Cara_2022_loc4_PFOA_weights)
## 
## Weighted Residuals:
##       1       2       3       4       5       6 
##  0.7261  1.0776  0.6497  0.5281 -1.1778  0.7603 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)  
## (Intercept)  0.56663    0.24447   2.318   0.0813 .
## TL_mean     -0.16502    0.06941  -2.378   0.0762 .
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.043 on 4 degrees of freedom
## Multiple R-squared:  0.5856, Adjusted R-squared:  0.482 
## F-statistic: 5.653 on 1 and 4 DF,  p-value: 0.07619
ggplot(Cara_2022_loc4, aes(x = TL_mean, y = log_PFOA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "log [PFOA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Cara_2022_loc4_PFOA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

Second food web - “location 5”

Cara_2022_loc5 <- read.csv(here("RData", "Cara_2022_loc5.csv"))

Cara_2022_loc5_PFOA_weights <- 1 / (Cara_2022_loc5$log_PFOA_sd^2)
Cara_2022_loc5_PFUnDA_weights <- 1 / (Cara_2022_loc5$log_PFUnDA_sd^2)

Cara_2022_loc5_lm_model_PFOA <- lm(log_PFOA_mean ~ TL_mean, 
                                   data = Cara_2022_loc5,
                                   weights = Cara_2022_loc5_PFOA_weights)

Cara_2022_loc5_PFOA_slope <- coef(Cara_2022_loc5_lm_model_PFOA)["TL_mean"]

summary(Cara_2022_loc5_lm_model_PFOA)
## 
## Call:
## lm(formula = log_PFOA_mean ~ TL_mean, data = Cara_2022_loc5, 
##     weights = Cara_2022_loc5_PFOA_weights)
## 
## Weighted Residuals:
##        1        2        3        4        5 
##  0.06248  1.02125 -0.86871  0.28294  0.65292 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)
## (Intercept)   0.3442     0.1530   2.250    0.110
## TL_mean      -0.1045     0.0483  -2.163    0.119
## 
## Residual standard error: 0.8771 on 3 degrees of freedom
##   (5 observations deleted due to missingness)
## Multiple R-squared:  0.6092, Adjusted R-squared:  0.479 
## F-statistic: 4.677 on 1 and 3 DF,  p-value: 0.1193
ggplot(Cara_2022_loc5, aes(x = TL_mean, y = log_PFOA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "log [PFOA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Cara_2022_loc5_PFOA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

Cara_2022_loc5_lm_model_PFUnDA <- lm(log_PFUnDA_mean ~ TL_mean, 
                                     data = Cara_2022_loc5, 
                                     weights = Cara_2022_loc5_PFUnDA_weights)

Cara_2022_loc5_PFUnDA_slope <- coef(Cara_2022_loc5_lm_model_PFUnDA)["TL_mean"]

summary(Cara_2022_loc5_lm_model_PFUnDA)
## 
## Call:
## lm(formula = log_PFUnDA_mean ~ TL_mean, data = Cara_2022_loc5, 
##     weights = Cara_2022_loc5_PFUnDA_weights)
## 
## Weighted Residuals:
##         6         7         8         9        10 
##  0.008169  0.420248 -0.768225  0.084596  0.266768 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)  
## (Intercept)  0.47930    0.19671   2.437   0.0928 .
## TL_mean     -0.24555    0.06287  -3.906   0.0298 *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.5308 on 3 degrees of freedom
##   (5 observations deleted due to missingness)
## Multiple R-squared:  0.8357, Adjusted R-squared:  0.7809 
## F-statistic: 15.25 on 1 and 3 DF,  p-value: 0.02981
ggplot(Cara_2022_loc5, aes(x = TL_mean, y = log_PFUnDA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "log [PFUnDA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Cara_2022_loc5_PFUnDA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

Third food web - “location 8”

Cara_2022_loc8 <- read.csv(here("RData", "Cara_2022_loc8.csv"))

Cara_2022_loc8_PFOA_weights <- 1 / (Cara_2022_loc8$log_PFOA_sd^2)
Cara_2022_loc8_PFTrDA_weights <- 1 / (Cara_2022_loc8$log_PFTrDA_sd^2)

Cara_2022_loc8_lm_model_PFOA <- lm(log_PFOA_mean ~ TL_mean, 
                                   data = Cara_2022_loc8,
                                   weights = Cara_2022_loc8_PFOA_weights)

Cara_2022_loc8_PFOA_slope <- coef(Cara_2022_loc8_lm_model_PFOA)["TL_mean"]

summary(Cara_2022_loc8_lm_model_PFOA)
## 
## Call:
## lm(formula = log_PFOA_mean ~ TL_mean, data = Cara_2022_loc8, 
##     weights = Cara_2022_loc8_PFOA_weights)
## 
## Weighted Residuals:
##       1       2       3       4       5       6 
##  1.5878  1.4728 -1.5827  0.3825  0.1319  0.2770 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)
## (Intercept)  0.30025    0.28777   1.043    0.356
## TL_mean     -0.09357    0.09254  -1.011    0.369
## 
## Residual standard error: 1.363 on 4 degrees of freedom
##   (5 observations deleted due to missingness)
## Multiple R-squared:  0.2036, Adjusted R-squared:  0.004454 
## F-statistic: 1.022 on 1 and 4 DF,  p-value: 0.3692
ggplot(Cara_2022_loc8, aes(x = TL_mean, y = log_PFOA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "log [PFOA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Cara_2022_loc8_PFOA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

Cara_2022_loc8_lm_model_PFTrDA <- lm(log_PFTrDA_mean ~ TL_mean, 
                                     data = Cara_2022_loc8, 
                                     weights = Cara_2022_loc8_PFTrDA_weights)

Cara_2022_loc8_PFTrDA_slope <- coef(Cara_2022_loc8_lm_model_PFTrDA)["TL_mean"]

summary(Cara_2022_loc8_lm_model_PFTrDA)
## 
## Call:
## lm(formula = log_PFTrDA_mean ~ TL_mean, data = Cara_2022_loc8, 
##     weights = Cara_2022_loc8_PFTrDA_weights)
## 
## Weighted Residuals:
##       7       8       9      10      11 
## -0.2362 -0.3168  0.2648  0.5207 -0.2130 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -4.81953    0.20726  -23.25 0.000174 ***
## TL_mean      0.97941    0.06286   15.58 0.000574 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.4253 on 3 degrees of freedom
##   (6 observations deleted due to missingness)
## Multiple R-squared:  0.9878, Adjusted R-squared:  0.9837 
## F-statistic: 242.8 on 1 and 3 DF,  p-value: 0.0005745
ggplot(Cara_2022_loc8, aes(x = TL_mean, y = log_PFTrDA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "log [PFTrDA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Cara_2022_loc8_PFOA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

S_013: Martin_2004

  • It provides standard errors of individual observations. Weights were assigned (inverse of standard error).

Benthic food web

WARNING! Benthic food web includes only two trophic levels! It cannot be considered a food web.

SE values for benthic food web slope cannot be calculated.

Martin_2004_benthic <- read.csv(here("RData/Martin_2004_benthic.csv"))

Martin_2004_benthic_PFOS_weights <- 1 / Martin_2004_benthic$se^2 # weights as the inverse of standard error

# PFOS
Martin_2004_benthic_lm_model_PFOS <- lm(ln_PFOS_mean ~ TL_mean, 
                                        data = Martin_2004_benthic,
                                        weights = Martin_2004_benthic_PFOS_weights)

Martin_2004_benthic_PFOS_slope <- coef(Martin_2004_benthic_lm_model_PFOS)["TL_mean"]

#plot(residuals(Martin_2004_benthic_lm_model_PFOS))

summary(Martin_2004_benthic_lm_model_PFOS)
## 
## Call:
## lm(formula = ln_PFOS_mean ~ TL_mean, data = Martin_2004_benthic, 
##     weights = Martin_2004_benthic_PFOS_weights)
## 
## Weighted Residuals:
## ALL 2 residuals are 0: no residual degrees of freedom!
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)
## (Intercept)  -3.5179        NaN     NaN      NaN
## TL_mean       0.6685        NaN     NaN      NaN
## 
## Residual standard error: NaN on 0 degrees of freedom
##   (14 observations deleted due to missingness)
## Multiple R-squared:      1,  Adjusted R-squared:    NaN 
## F-statistic:   NaN on 1 and 0 DF,  p-value: NA
ggplot(Martin_2004_benthic, aes(x = TL_mean, y = ln_PFOS_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "ln [PFOS]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Martin_2004_benthic_PFOS_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# PFOA
Martin_2004_benthic_lm_model_PFOA <- lm(ln_PFOA_mean ~ TL_mean, 
                                        data = Martin_2004_benthic,
                                        weights = Martin_2004_benthic_PFOS_weights)

Martin_2004_benthic_PFOA_slope <- coef(Martin_2004_benthic_lm_model_PFOA)["TL_mean"]

summary(Martin_2004_benthic_lm_model_PFOA)
## 
## Call:
## lm(formula = ln_PFOA_mean ~ TL_mean, data = Martin_2004_benthic, 
##     weights = Martin_2004_benthic_PFOS_weights)
## 
## Weighted Residuals:
## ALL 2 residuals are 0: no residual degrees of freedom!
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)
## (Intercept)   0.7887        NaN     NaN      NaN
## TL_mean      -0.9692        NaN     NaN      NaN
## 
## Residual standard error: NaN on 0 degrees of freedom
##   (14 observations deleted due to missingness)
## Multiple R-squared:      1,  Adjusted R-squared:    NaN 
## F-statistic:   NaN on 1 and 0 DF,  p-value: NA
ggplot(Martin_2004_benthic, aes(x = TL_mean, y = ln_PFOA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "ln [PFOA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Martin_2004_benthic_PFOA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# PFNA
Martin_2004_benthic_lm_model_PFNA <- lm(ln_PFNA_mean ~ TL_mean, 
                                        data = Martin_2004_benthic,
                                        weights = Martin_2004_benthic_PFOS_weights)

Martin_2004_benthic_PFNA_slope <- coef(Martin_2004_benthic_lm_model_PFNA)["TL_mean"]

summary(Martin_2004_benthic_lm_model_PFNA)
## 
## Call:
## lm(formula = ln_PFNA_mean ~ TL_mean, data = Martin_2004_benthic, 
##     weights = Martin_2004_benthic_PFOS_weights)
## 
## Weighted Residuals:
## ALL 2 residuals are 0: no residual degrees of freedom!
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)
## (Intercept)    1.465        NaN     NaN      NaN
## TL_mean       -1.297        NaN     NaN      NaN
## 
## Residual standard error: NaN on 0 degrees of freedom
##   (14 observations deleted due to missingness)
## Multiple R-squared:      1,  Adjusted R-squared:    NaN 
## F-statistic:   NaN on 1 and 0 DF,  p-value: NA
ggplot(Martin_2004_benthic, aes(x = TL_mean, y = ln_PFNA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "ln [PFNA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Martin_2004_benthic_PFNA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# PFDA
Martin_2004_benthic_lm_model_PFDA <- lm(ln_PFDA_mean ~ TL_mean, 
                                        data = Martin_2004_benthic,
                                        weights = Martin_2004_benthic_PFOS_weights)

Martin_2004_benthic_PFDA_slope <- coef(Martin_2004_benthic_lm_model_PFDA)["TL_mean"]

summary(Martin_2004_benthic_lm_model_PFDA)
## 
## Call:
## lm(formula = ln_PFDA_mean ~ TL_mean, data = Martin_2004_benthic, 
##     weights = Martin_2004_benthic_PFOS_weights)
## 
## Weighted Residuals:
## ALL 2 residuals are 0: no residual degrees of freedom!
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)
## (Intercept)  -2.9059        NaN     NaN      NaN
## TL_mean      -0.1668        NaN     NaN      NaN
## 
## Residual standard error: NaN on 0 degrees of freedom
##   (14 observations deleted due to missingness)
## Multiple R-squared:      1,  Adjusted R-squared:    NaN 
## F-statistic:   NaN on 1 and 0 DF,  p-value: NA
ggplot(Martin_2004_benthic, aes(x = TL_mean, y = ln_PFDA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "ln [PFDA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Martin_2004_benthic_PFDA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# PFUnDA
Martin_2004_benthic_lm_model_PFUnDA <- lm(ln_PFUnDA_mean ~ TL_mean, 
                                        data = Martin_2004_benthic,
                                        weights = Martin_2004_benthic_PFOS_weights)

Martin_2004_benthic_PFUnDA_slope <- coef(Martin_2004_benthic_lm_model_PFUnDA)["TL_mean"]

summary(Martin_2004_benthic_lm_model_PFUnDA)
## 
## Call:
## lm(formula = ln_PFUnDA_mean ~ TL_mean, data = Martin_2004_benthic, 
##     weights = Martin_2004_benthic_PFOS_weights)
## 
## Weighted Residuals:
## ALL 2 residuals are 0: no residual degrees of freedom!
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)
## (Intercept) -3.08783        NaN     NaN      NaN
## TL_mean     -0.02744        NaN     NaN      NaN
## 
## Residual standard error: NaN on 0 degrees of freedom
##   (14 observations deleted due to missingness)
## Multiple R-squared:      1,  Adjusted R-squared:    NaN 
## F-statistic:   NaN on 1 and 0 DF,  p-value: NA
ggplot(Martin_2004_benthic, aes(x = TL_mean, y = ln_PFUnDA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "ln [PFUnDA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Martin_2004_benthic_PFUnDA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# PFDoDA
Martin_2004_benthic_lm_model_PFDoDA <- lm(ln_PFDoDA_mean ~ TL_mean, 
                                        data = Martin_2004_benthic,
                                        weights = Martin_2004_benthic_PFOS_weights)

Martin_2004_benthic_PFDoDA_slope <- coef(Martin_2004_benthic_lm_model_PFDoDA)["TL_mean"]

summary(Martin_2004_benthic_lm_model_PFDoDA)
## 
## Call:
## lm(formula = ln_PFDoDA_mean ~ TL_mean, data = Martin_2004_benthic, 
##     weights = Martin_2004_benthic_PFOS_weights)
## 
## Weighted Residuals:
## ALL 2 residuals are 0: no residual degrees of freedom!
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)
## (Intercept) -4.31728        NaN     NaN      NaN
## TL_mean      0.01814        NaN     NaN      NaN
## 
## Residual standard error: NaN on 0 degrees of freedom
##   (14 observations deleted due to missingness)
## Multiple R-squared:      1,  Adjusted R-squared:    NaN 
## F-statistic:   NaN on 1 and 0 DF,  p-value: NA
ggplot(Martin_2004_benthic, aes(x = TL_mean, y = ln_PFDoDA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "ln [PFDoDA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Martin_2004_benthic_PFDoDA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# PFTrDA
Martin_2004_benthic_lm_model_PFTrDA <- lm(ln_PFTrDA_mean ~ TL_mean, 
                                        data = Martin_2004_benthic,
                                        weights = Martin_2004_benthic_PFOS_weights)

Martin_2004_benthic_PFTrDA_slope <- coef(Martin_2004_benthic_lm_model_PFTrDA)["TL_mean"]

summary(Martin_2004_benthic_lm_model_PFTrDA)
## 
## Call:
## lm(formula = ln_PFTrDA_mean ~ TL_mean, data = Martin_2004_benthic, 
##     weights = Martin_2004_benthic_PFOS_weights)
## 
## Weighted Residuals:
## ALL 2 residuals are 0: no residual degrees of freedom!
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)
## (Intercept)  -3.6146        NaN     NaN      NaN
## TL_mean      -0.1779        NaN     NaN      NaN
## 
## Residual standard error: NaN on 0 degrees of freedom
##   (14 observations deleted due to missingness)
## Multiple R-squared:      1,  Adjusted R-squared:    NaN 
## F-statistic:   NaN on 1 and 0 DF,  p-value: NA
ggplot(Martin_2004_benthic, aes(x = TL_mean, y = ln_PFTrDA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "ln [PFTrDA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Martin_2004_benthic_PFTrDA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# PFTeDA
Martin_2004_benthic_lm_model_PFTeDA <- lm(ln_PFTeDA_mean ~ TL_mean, 
                                        data = Martin_2004_benthic,
                                        weights = Martin_2004_benthic_PFOS_weights)

Martin_2004_benthic_PFTeDA_slope <- coef(Martin_2004_benthic_lm_model_PFTeDA)["TL_mean"]

summary(Martin_2004_benthic_lm_model_PFTeDA)
## 
## Call:
## lm(formula = ln_PFTeDA_mean ~ TL_mean, data = Martin_2004_benthic, 
##     weights = Martin_2004_benthic_PFOS_weights)
## 
## Weighted Residuals:
## ALL 2 residuals are 0: no residual degrees of freedom!
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)
## (Intercept)   -2.083        NaN     NaN      NaN
## TL_mean       -0.846        NaN     NaN      NaN
## 
## Residual standard error: NaN on 0 degrees of freedom
##   (14 observations deleted due to missingness)
## Multiple R-squared:      1,  Adjusted R-squared:    NaN 
## F-statistic:   NaN on 1 and 0 DF,  p-value: NA
ggplot(Martin_2004_benthic, aes(x = TL_mean, y = ln_PFTeDA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "ln [PFTeDA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Martin_2004_benthic_PFTeDA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

Pelagic food web

Martin_2004_pelagic <- read.csv(here("RData", "Martin_2004_pelagic.csv"))

Martin_2004_pelagic_weights <- Martin_2004_pelagic$se^2

# PFOS
Martin_2004_pelagic_lm_model_PFOS <- lm(ln_PFOS_mean ~ TL_mean, 
                                        data = Martin_2004_pelagic,
                                        weights = Martin_2004_pelagic_weights)

Martin_2004_pelagic_PFOS_slope <- coef(Martin_2004_pelagic_lm_model_PFOS)["TL_mean"]

summary(Martin_2004_pelagic_lm_model_PFOS)
## 
## Call:
## lm(formula = ln_PFOS_mean ~ TL_mean, data = Martin_2004_pelagic, 
##     weights = Martin_2004_pelagic_weights)
## 
## Weighted Residuals:
##       13       14       15       16 
## -0.06550 -0.03859  0.09522 -0.05332 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)  
## (Intercept)  -9.4564     1.6388  -5.770   0.0287 *
## TL_mean       1.5708     0.3656   4.296   0.0501 .
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.09405 on 2 degrees of freedom
##   (28 observations deleted due to missingness)
## Multiple R-squared:  0.9022, Adjusted R-squared:  0.8533 
## F-statistic: 18.46 on 1 and 2 DF,  p-value: 0.05014
ggplot(Martin_2004_pelagic, aes(x = TL_mean, y = ln_PFOS_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "ln [PFOS]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Martin_2004_pelagic_PFOS_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# PFOA
Martin_2004_pelagic_lm_model_PFOA <- lm(ln_PFOA_mean ~ TL_mean, 
                                        data = Martin_2004_pelagic,
                                        weights = Martin_2004_pelagic_weights)

Martin_2004_pelagic_PFOA_slope <- coef(Martin_2004_pelagic_lm_model_PFOA)["TL_mean"]

summary(Martin_2004_pelagic_lm_model_PFOA)
## 
## Call:
## lm(formula = ln_PFOA_mean ~ TL_mean, data = Martin_2004_pelagic, 
##     weights = Martin_2004_pelagic_weights)
## 
## Weighted Residuals:
##        9       10       11       12 
##  0.08925 -0.07673  0.05630 -0.02587 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)  
## (Intercept) -6.549168   2.078773   -3.15   0.0877 .
## TL_mean      0.004784   0.492038    0.01   0.9931  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.09405 on 2 degrees of freedom
##   (28 observations deleted due to missingness)
## Multiple R-squared:  4.727e-05,  Adjusted R-squared:  -0.4999 
## F-statistic: 9.454e-05 on 1 and 2 DF,  p-value: 0.9931
ggplot(Martin_2004_pelagic, aes(x = TL_mean, y = ln_PFOA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "ln [PFOA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Martin_2004_pelagic_PFOA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# PFNA
Martin_2004_pelagic_lm_model_PFNA <- lm(ln_PFNA_mean ~ TL_mean, 
                                        data = Martin_2004_pelagic,
                                        weights = Martin_2004_pelagic_weights)

Martin_2004_pelagic_PFNA_slope <- coef(Martin_2004_pelagic_lm_model_PFNA)["TL_mean"]

summary(Martin_2004_pelagic_lm_model_PFNA)
## 
## Call:
## lm(formula = ln_PFNA_mean ~ TL_mean, data = Martin_2004_pelagic, 
##     weights = Martin_2004_pelagic_weights)
## 
## Weighted Residuals:
##       5       6       7       8 
##  0.2937 -0.3944  0.9441 -0.2643 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)
## (Intercept)  -17.073      6.190  -2.758    0.110
## TL_mean        2.367      1.409   1.680    0.235
## 
## Residual standard error: 0.7755 on 2 degrees of freedom
##   (28 observations deleted due to missingness)
## Multiple R-squared:  0.5852, Adjusted R-squared:  0.3778 
## F-statistic: 2.822 on 1 and 2 DF,  p-value: 0.235
ggplot(Martin_2004_pelagic, aes(x = TL_mean, y = ln_PFNA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "ln [PFNA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Martin_2004_pelagic_PFNA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# PFDA
Martin_2004_pelagic_lm_model_PFDA <- lm(ln_PFDA_mean ~ TL_mean, 
                                        data = Martin_2004_pelagic,
                                        weights = Martin_2004_pelagic_weights)

Martin_2004_pelagic_PFDA_slope <- coef(Martin_2004_pelagic_lm_model_PFDA)["TL_mean"]

summary(Martin_2004_pelagic_lm_model_PFDA)
## 
## Call:
## lm(formula = ln_PFDA_mean ~ TL_mean, data = Martin_2004_pelagic, 
##     weights = Martin_2004_pelagic_weights)
## 
## Weighted Residuals:
##        1        2        3        4 
##  0.06523 -0.19557  0.41969 -0.11900 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)  
## (Intercept) -13.9428     3.7142  -3.754   0.0642 .
## TL_mean       1.7900     0.8325   2.150   0.1645  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.3412 on 2 degrees of freedom
##   (28 observations deleted due to missingness)
## Multiple R-squared:  0.6981, Adjusted R-squared:  0.5471 
## F-statistic: 4.624 on 1 and 2 DF,  p-value: 0.1645
ggplot(Martin_2004_pelagic, aes(x = TL_mean, y = ln_PFDA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "ln [PFDA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Martin_2004_pelagic_PFDA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# PFUnDA
Martin_2004_pelagic_lm_model_PFUnDA <- lm(ln_PFUnDA_mean ~ TL_mean, 
                                        data = Martin_2004_pelagic,
                                        weights = Martin_2004_pelagic_weights)

Martin_2004_pelagic_PFUnDA_slope <- coef(Martin_2004_pelagic_lm_model_PFUnDA)["TL_mean"]

summary(Martin_2004_pelagic_lm_model_PFUnDA)
## 
## Call:
## lm(formula = ln_PFUnDA_mean ~ TL_mean, data = Martin_2004_pelagic, 
##     weights = Martin_2004_pelagic_weights)
## 
## Weighted Residuals:
##      29      30      31      32 
##  0.1800 -0.2403  0.4952 -0.1082 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)  
## (Intercept) -15.8498     3.7612  -4.214    0.052 .
## TL_mean       2.2257     0.8449   2.634    0.119  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.4166 on 2 degrees of freedom
##   (28 observations deleted due to missingness)
## Multiple R-squared:  0.7763, Adjusted R-squared:  0.6644 
## F-statistic:  6.94 on 1 and 2 DF,  p-value: 0.1189
ggplot(Martin_2004_pelagic, aes(x = TL_mean, y = ln_PFUnDA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "ln [PFUnDA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Martin_2004_pelagic_PFUnDA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# PFDoDA
Martin_2004_pelagic_lm_model_PFDoDA <- lm(ln_PFDoDA_mean ~ TL_mean, 
                                        data = Martin_2004_pelagic,
                                        weights = Martin_2004_pelagic_weights)

Martin_2004_pelagic_PFDoDA_slope <- coef(Martin_2004_pelagic_lm_model_PFDoDA)["TL_mean"]

summary(Martin_2004_pelagic_lm_model_PFDoDA)
## 
## Call:
## lm(formula = ln_PFDoDA_mean ~ TL_mean, data = Martin_2004_pelagic, 
##     weights = Martin_2004_pelagic_weights)
## 
## Weighted Residuals:
##       25       26       27       28 
##  0.06900 -0.06292  0.21296 -0.03555 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)  
## (Intercept) -10.2005     1.5045  -6.780   0.0211 *
## TL_mean       0.9132     0.3438   2.656   0.1173  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.1663 on 2 degrees of freedom
##   (28 observations deleted due to missingness)
## Multiple R-squared:  0.7791, Adjusted R-squared:  0.6687 
## F-statistic: 7.055 on 1 and 2 DF,  p-value: 0.1173
ggplot(Martin_2004_pelagic, aes(x = TL_mean, y = ln_PFDoDA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "ln [PFDoDA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Martin_2004_pelagic_PFDoDA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# PFTrDA
Martin_2004_pelagic_lm_model_PFTrDA <- lm(ln_PFTrDA_mean ~ TL_mean, 
                                        data = Martin_2004_pelagic,
                                        weights = Martin_2004_pelagic_weights)

Martin_2004_pelagic_PFTrDA_slope <- coef(Martin_2004_pelagic_lm_model_PFTrDA)["TL_mean"]

summary(Martin_2004_pelagic_lm_model_PFTrDA)
## 
## Call:
## lm(formula = ln_PFTrDA_mean ~ TL_mean, data = Martin_2004_pelagic, 
##     weights = Martin_2004_pelagic_weights)
## 
## Weighted Residuals:
##        21        22        23        24 
## -0.001384 -0.091328  0.079173 -0.022628 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)  
## (Intercept)  -9.3035     1.7723  -5.249   0.0344 *
## TL_mean       0.7857     0.3790   2.073   0.1739  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.08696 on 2 degrees of freedom
##   (28 observations deleted due to missingness)
## Multiple R-squared:  0.6825, Adjusted R-squared:  0.5237 
## F-statistic: 4.299 on 1 and 2 DF,  p-value: 0.1739
ggplot(Martin_2004_pelagic, aes(x = TL_mean, y = ln_PFTrDA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "ln [PFTrDA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Martin_2004_pelagic_PFTrDA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# PFTeDA
Martin_2004_pelagic_lm_model_PFTeDA <- lm(ln_PFTeDA_mean ~ TL_mean, 
                                        data = Martin_2004_pelagic)

Martin_2004_pelagic_PFTeDA_slope <- coef(Martin_2004_pelagic_lm_model_PFTeDA)["TL_mean"]

summary(Martin_2004_pelagic_lm_model_PFTeDA)
## 
## Call:
## lm(formula = ln_PFTeDA_mean ~ TL_mean, data = Martin_2004_pelagic)
## 
## Residuals:
##      17      18      19      20 
##  0.6875 -0.9092 -0.3270  0.5487 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)
## (Intercept)  -6.0291     4.0316  -1.495    0.273
## TL_mean      -0.3242     0.9409  -0.345    0.763
## 
## Residual standard error: 0.9239 on 2 degrees of freedom
##   (28 observations deleted due to missingness)
## Multiple R-squared:  0.05603,    Adjusted R-squared:  -0.4159 
## F-statistic: 0.1187 on 1 and 2 DF,  p-value: 0.7633
ggplot(Martin_2004_pelagic, aes(x = TL_mean, y = ln_PFTeDA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "ln [PFTeDA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Martin_2004_pelagic_PFTeDA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

Whole food web

Martin_2004_whole <- read.csv(here("RData", "Martin_2004_whole.csv"))

Martin_2004_whole_FOSA_weights <- 1 / Martin_2004_whole$se^2

Martin_2004_whole_lm_model_FOSA <- lm(ln_FOSA_mean ~ TL_mean, 
                                        data = Martin_2004_whole,
                                        weights = Martin_2004_whole_FOSA_weights)

Martin_2004_whole_FOSA_slope <- coef(Martin_2004_whole_lm_model_FOSA)["TL_mean"]

summary(Martin_2004_whole_lm_model_FOSA)
## 
## Call:
## lm(formula = ln_FOSA_mean ~ TL_mean, data = Martin_2004_whole, 
##     weights = Martin_2004_whole_FOSA_weights)
## 
## Weighted Residuals:
##      1      2      3      4      5      6 
##  1.556 -1.913  1.144 -5.478 -2.185 -2.248 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1.79003    1.78492  -1.003    0.373
## TL_mean     -0.03605    0.45095  -0.080    0.940
## 
## Residual standard error: 3.436 on 4 degrees of freedom
## Multiple R-squared:  0.001595,   Adjusted R-squared:  -0.248 
## F-statistic: 0.006391 on 1 and 4 DF,  p-value: 0.9401
ggplot(Martin_2004_whole, aes(x = TL_mean, y = ln_FOSA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "ln [FOSA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Martin_2004_whole_FOSA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

S_053: Koch_2020

  • It does not provide standard error or standard deviation values of individual observations. Weights cannot be assigned.

Aquatic food web

Koch_2020_aquatic <- read.csv(here("Rdata", "Koch_2020_aquatic.csv"))

Koch_2020_aquatic_lm_model_PFOS <- lm(log_PFOS_mean ~ delta_15N_mean,
                                      data = Koch_2020_aquatic)

Koch_2020_aquatic_PFOS_slope <- coef(Koch_2020_aquatic_lm_model_PFOS)["delta_15N_mean"]

summary(Koch_2020_aquatic_lm_model_PFOS)
## 
## Call:
## lm(formula = log_PFOS_mean ~ delta_15N_mean, data = Koch_2020_aquatic)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.0713 -0.2352  0.0970  0.3110  0.5489 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)    
## (Intercept)     2.58222    0.55873   4.622 0.000479 ***
## delta_15N_mean  0.06616    0.04848   1.365 0.195451    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.4431 on 13 degrees of freedom
## Multiple R-squared:  0.1253, Adjusted R-squared:  0.05806 
## F-statistic: 1.863 on 1 and 13 DF,  p-value: 0.1955
ggplot(Koch_2020_aquatic, aes(x = delta_15N_mean, y = log_PFOS_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "delta 15N",
       y = "ln [PFOS]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Koch_2020_aquatic_PFOS_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

Riparian food web

Koch_2020_riparian <- read.csv(here("Rdata", "Koch_2020_riparian.csv"))

Koch_2020_riparian_lm_model_PFOS <- lm(log_PFOS_mean ~ delta_15N_mean,
                                      data = Koch_2020_riparian)

Koch_2020_riparian_PFOS_slope <- coef(Koch_2020_riparian_lm_model_PFOS)["delta_15N_mean"]

summary(Koch_2020_riparian_lm_model_PFOS)
## 
## Call:
## lm(formula = log_PFOS_mean ~ delta_15N_mean, data = Koch_2020_riparian)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.3215 -0.2697  0.1286  0.3197  1.1980 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)   
## (Intercept)     0.72084    0.39533   1.823  0.09132 . 
## delta_15N_mean  0.21637    0.05867   3.688  0.00273 **
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.624 on 13 degrees of freedom
## Multiple R-squared:  0.5113, Adjusted R-squared:  0.4737 
## F-statistic:  13.6 on 1 and 13 DF,  p-value: 0.002733
ggplot(Koch_2020_riparian, aes(x = delta_15N_mean, y = log_PFOS_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "delta 15N",
       y = "ln [PFOS]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Koch_2020_riparian_PFOS_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

S_004: Mazzoni_2020

  • It does not provide standard error or standard deviation values of individual observations. Weights cannot be assigned.

Food web 1 - including zooplankton

Mazzoni_2020_fw1 <- read.csv(here("Rdata", "Mazzoni_2020_fw1.csv"))

# PFDA
Mazzoni_2020_fw1_lm_model_PFDA <- lm(log_PFDA_mean ~ TL_mean,
                                      data = Mazzoni_2020_fw1)

Mazzoni_2020_fw1_PFDA_slope <- coef(Mazzoni_2020_fw1_lm_model_PFDA)["TL_mean"]

summary(Mazzoni_2020_fw1_lm_model_PFDA)
## 
## Call:
## lm(formula = log_PFDA_mean ~ TL_mean, data = Mazzoni_2020_fw1)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.93185 -0.20709  0.05011  0.19154  0.72071 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)   
## (Intercept)  -2.2364     0.6283  -3.559  0.00241 **
## TL_mean       0.4641     0.1304   3.558  0.00242 **
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.3684 on 17 degrees of freedom
##   (81 observations deleted due to missingness)
## Multiple R-squared:  0.4269, Adjusted R-squared:  0.3932 
## F-statistic: 12.66 on 1 and 17 DF,  p-value: 0.002418
ggplot(Mazzoni_2020_fw1, aes(x = TL_mean, y = log_PFDA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "log [PFDA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Mazzoni_2020_fw1_PFDA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# PFDoDA
Mazzoni_2020_fw1_lm_model_PFDoDA <- lm(log_PFDoDA_mean ~ TL_mean,
                                      data = Mazzoni_2020_fw1)

Mazzoni_2020_fw1_PFDoDA_slope <- coef(Mazzoni_2020_fw1_lm_model_PFDoDA)["TL_mean"]

summary(Mazzoni_2020_fw1_lm_model_PFDoDA)
## 
## Call:
## lm(formula = log_PFDoDA_mean ~ TL_mean, data = Mazzoni_2020_fw1)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.3739 -0.2267  0.1303  0.3911  0.7247 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)
## (Intercept) -0.38106    0.94848  -0.402    0.693
## TL_mean      0.06492    0.19489   0.333    0.743
## 
## Residual standard error: 0.5659 on 17 degrees of freedom
##   (81 observations deleted due to missingness)
## Multiple R-squared:  0.006484,   Adjusted R-squared:  -0.05196 
## F-statistic: 0.111 on 1 and 17 DF,  p-value: 0.7431
ggplot(Mazzoni_2020_fw1, aes(x = TL_mean, y = log_PFDoDA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "log [PFDoDA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Mazzoni_2020_fw1_PFDoDA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# PFNA
Mazzoni_2020_fw1_lm_model_PFNA <- lm(log_PFNA_mean ~ TL_mean,
                                      data = Mazzoni_2020_fw1)

Mazzoni_2020_fw1_PFNA_slope <- coef(Mazzoni_2020_fw1_lm_model_PFNA)["TL_mean"]

summary(Mazzoni_2020_fw1_lm_model_PFNA)
## 
## Call:
## lm(formula = log_PFNA_mean ~ TL_mean, data = Mazzoni_2020_fw1)
## 
## Residuals:
##       47       52       53       58       59 
## -0.05068  0.07628  0.26401 -0.39392  0.10431 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)
## (Intercept)  -0.3214     1.6166  -0.199    0.855
## TL_mean      -0.1055     0.3343  -0.316    0.773
## 
## Residual standard error: 0.2853 on 3 degrees of freedom
##   (95 observations deleted due to missingness)
## Multiple R-squared:  0.03214,    Adjusted R-squared:  -0.2905 
## F-statistic: 0.09963 on 1 and 3 DF,  p-value: 0.773
ggplot(Mazzoni_2020_fw1, aes(x = TL_mean, y = log_PFNA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "log [PFNA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Mazzoni_2020_fw1_PFNA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# PFOS - Note: The study already provides the TMS and SE for this compound
Mazzoni_2020_fw1_lm_model_PFOS <- lm(log_PFOS_mean ~ TL_mean, data = Mazzoni_2020_fw1)

Mazzoni_2020_fw1_PFOS_slope <- coef(Mazzoni_2020_fw1_lm_model_PFOS)["TL_mean"]

summary(Mazzoni_2020_fw1_lm_model_PFOS)
## 
## Call:
## lm(formula = log_PFOS_mean ~ TL_mean, data = Mazzoni_2020_fw1)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.49684 -0.18993  0.08087  0.38715  0.79660 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)  
## (Intercept)  -1.7305     0.9551  -1.812   0.0867 .
## TL_mean       0.4834     0.1968   2.457   0.0244 *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.5729 on 18 degrees of freedom
##   (80 observations deleted due to missingness)
## Multiple R-squared:  0.2511, Adjusted R-squared:  0.2095 
## F-statistic: 6.036 on 1 and 18 DF,  p-value: 0.0244
ggplot(Mazzoni_2020_fw1, aes(x = TL_mean, y = log_PFOS_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "log [PFOS]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Mazzoni_2020_fw1_PFOS_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# PFUnDA
Mazzoni_2020_fw1_lm_model_PFUnDA <- lm(log_PFUnDA_mean ~ TL_mean,
                                      data = Mazzoni_2020_fw1)

Mazzoni_2020_fw1_PFUnDA_slope <- coef(Mazzoni_2020_fw1_lm_model_PFUnDA)["TL_mean"]

summary(Mazzoni_2020_fw1_lm_model_PFUnDA)
## 
## Call:
## lm(formula = log_PFUnDA_mean ~ TL_mean, data = Mazzoni_2020_fw1)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.5231 -0.1691  0.1004  0.2885  0.7538 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)
## (Intercept) -0.26377    0.81992  -0.322    0.751
## TL_mean      0.08834    0.16892   0.523    0.607
## 
## Residual standard error: 0.4918 on 18 degrees of freedom
##   (80 observations deleted due to missingness)
## Multiple R-squared:  0.01497,    Adjusted R-squared:  -0.03976 
## F-statistic: 0.2735 on 1 and 18 DF,  p-value: 0.6074
ggplot(Mazzoni_2020_fw1, aes(x = TL_mean, y = log_PFUnDA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "log [PFUnDA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Mazzoni_2020_fw1_PFUnDA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

Food web 2 - excluding zooplankton

Mazzoni_2020_fw2 <- read.csv(here("Rdata", "Mazzoni_2020_fw2.csv"))

# PFDA
Mazzoni_2020_fw2_lm_model_PFDA <- lm(log_PFDA_mean ~ TL_mean,
                                      data = Mazzoni_2020_fw2)

Mazzoni_2020_fw2_PFDA_slope <- coef(Mazzoni_2020_fw2_lm_model_PFDA)["TL_mean"]

summary(Mazzoni_2020_fw2_lm_model_PFDA)
## 
## Call:
## lm(formula = log_PFDA_mean ~ TL_mean, data = Mazzoni_2020_fw2)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.55706 -0.30415  0.05658  0.21234  0.68616 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)  
## (Intercept)  -1.0074     0.5799  -1.737   0.1015  
## TL_mean       0.2216     0.1203   1.842   0.0841 .
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.344 on 16 degrees of freedom
##   (58 observations deleted due to missingness)
## Multiple R-squared:  0.175,  Adjusted R-squared:  0.1234 
## F-statistic: 3.393 on 1 and 16 DF,  p-value: 0.08409
ggplot(Mazzoni_2020_fw2, aes(x = TL_mean, y = log_PFDA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "log [PFDA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Mazzoni_2020_fw2_PFDA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# PFDoDA
Mazzoni_2020_fw2_lm_model_PFDoDA <- lm(log_PFDoDA_mean ~ TL_mean,
                                      data = Mazzoni_2020_fw2)

Mazzoni_2020_fw2_PFDoDA_slope <- coef(Mazzoni_2020_fw2_lm_model_PFDoDA)["TL_mean"]

summary(Mazzoni_2020_fw2_lm_model_PFDoDA)
## 
## Call:
## lm(formula = log_PFDoDA_mean ~ TL_mean, data = Mazzoni_2020_fw2)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.3998 -0.1265  0.1572  0.3727  0.6608 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)
## (Intercept) -0.49258    0.95503  -0.516    0.613
## TL_mean      0.09328    0.19743   0.472    0.643
## 
## Residual standard error: 0.5721 on 16 degrees of freedom
##   (58 observations deleted due to missingness)
## Multiple R-squared:  0.01376,    Adjusted R-squared:  -0.04788 
## F-statistic: 0.2232 on 1 and 16 DF,  p-value: 0.643
ggplot(Mazzoni_2020_fw2, aes(x = TL_mean, y = log_PFDoDA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "log [PFDoDA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Mazzoni_2020_fw2_PFDoDA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# PFOS
Mazzoni_2020_fw2_lm_model_PFOS <- lm(log_PFOS_mean ~ TL_mean,
                                      data = Mazzoni_2020_fw2)

Mazzoni_2020_fw2_PFOS_slope <- coef(Mazzoni_2020_fw2_lm_model_PFOS)["TL_mean"]

summary(Mazzoni_2020_fw2_lm_model_PFOS)
## 
## Call:
## lm(formula = log_PFOS_mean ~ TL_mean, data = Mazzoni_2020_fw2)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.28863 -0.19577  0.04808  0.39692  0.84789 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)
## (Intercept)  0.40479    0.84730   0.478    0.639
## TL_mean      0.05947    0.17484   0.340    0.738
## 
## Residual standard error: 0.5079 on 17 degrees of freedom
##   (57 observations deleted due to missingness)
## Multiple R-squared:  0.00676,    Adjusted R-squared:  -0.05167 
## F-statistic: 0.1157 on 1 and 17 DF,  p-value: 0.7379
ggplot(Mazzoni_2020_fw2, aes(x = TL_mean, y = log_PFOS_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "log [PFOS]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Mazzoni_2020_fw2_PFOS_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# PFUnDA
Mazzoni_2020_fw2_lm_model_PFUnDA <- lm(log_PFUnDA_mean ~ TL_mean,
                                      data = Mazzoni_2020_fw2)

Mazzoni_2020_fw2_PFUnDA_slope <- coef(Mazzoni_2020_fw2_lm_model_PFUnDA)["TL_mean"]

summary(Mazzoni_2020_fw2_lm_model_PFUnDA)
## 
## Call:
## lm(formula = log_PFUnDA_mean ~ TL_mean, data = Mazzoni_2020_fw2)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.59708 -0.08981  0.15726  0.25468  0.60714 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)
## (Intercept)  -0.9283     0.7915  -1.173    0.257
## TL_mean       0.2310     0.1633   1.414    0.175
## 
## Residual standard error: 0.4745 on 17 degrees of freedom
##   (57 observations deleted due to missingness)
## Multiple R-squared:  0.1053, Adjusted R-squared:  0.05267 
## F-statistic: 2.001 on 1 and 17 DF,  p-value: 0.1753
ggplot(Mazzoni_2020_fw2, aes(x = TL_mean, y = log_PFUnDA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "log [PFUnDA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Mazzoni_2020_fw2_PFUnDA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

S_017: Liu_2018

  • It does not provide standard error or standard deviation values of individual observations. Weights cannot be assigned.
Liu_2018 <- read.csv(here("Rdata", "Liu_2018.csv"))
# PFBA
Liu_2018_lm_model_PFBA <- lm(ln_PFBA_mean ~ TL_mean,
                             data = Liu_2018)

Liu_2018_PFBA_slope <- coef(Liu_2018_lm_model_PFBA)["TL_mean"]

summary(Liu_2018_lm_model_PFBA)
## 
## Call:
## lm(formula = ln_PFBA_mean ~ TL_mean, data = Liu_2018)
## 
## Residuals:
##        1        2        3        4        5        6 
## -0.24536 -0.52656  0.03412 -0.38730 -0.57306  1.69816 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)  
## (Intercept)  -2.0793     2.6240  -0.792    0.472  
## TL_mean       2.4606     0.9403   2.617    0.059 .
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.9619 on 4 degrees of freedom
##   (42 observations deleted due to missingness)
## Multiple R-squared:  0.6313, Adjusted R-squared:  0.5391 
## F-statistic: 6.848 on 1 and 4 DF,  p-value: 0.05899
ggplot(Liu_2018, aes(x = TL_mean, y = ln_PFBA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "ln [PFBA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Liu_2018_PFBA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# PFOA
Liu_2018_lm_model_PFOA <- lm(ln_PFOA_mean ~ TL_mean,
                             data = Liu_2018)

Liu_2018_PFOA_slope <- coef(Liu_2018_lm_model_PFOA)["TL_mean"]


summary(Liu_2018_lm_model_PFOA)
## 
## Call:
## lm(formula = ln_PFOA_mean ~ TL_mean, data = Liu_2018)
## 
## Residuals:
##        7        8        9       10       11       12 
##  1.07869 -0.11081 -0.90866 -0.82724  0.75485  0.01316 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)
## (Intercept)   1.1811     2.4627   0.480    0.657
## TL_mean       0.6875     0.8825   0.779    0.479
## 
## Residual standard error: 0.9022 on 4 degrees of freedom
##   (42 observations deleted due to missingness)
## Multiple R-squared:  0.1317, Adjusted R-squared:  -0.08534 
## F-statistic: 0.6068 on 1 and 4 DF,  p-value: 0.4795
ggplot(Liu_2018, aes(x = TL_mean, y = ln_PFOA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "ln [PFOA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Liu_2018_PFOA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# PFNA
Liu_2018_lm_model_PFNA <- lm(ln_PFNA_mean ~ TL_mean,
                             data = Liu_2018)

Liu_2018_PFNA_slope <- coef(Liu_2018_lm_model_PFNA)["TL_mean"]

summary(Liu_2018_lm_model_PFNA)
## 
## Call:
## lm(formula = ln_PFNA_mean ~ TL_mean, data = Liu_2018)
## 
## Residuals:
##       13       14       15       16       17       18 
##  0.66783  0.06036 -0.53389 -0.27854 -0.07326  0.15750 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)  
## (Intercept)   0.5251     1.2654   0.415   0.6994  
## TL_mean       1.2805     0.4542   2.819   0.0479 *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.4589 on 4 degrees of freedom
##   (42 observations deleted due to missingness)
## Multiple R-squared:  0.6652, Adjusted R-squared:  0.5815 
## F-statistic: 7.949 on 1 and 4 DF,  p-value: 0.04786
ggplot(Liu_2018, aes(x = TL_mean, y = ln_PFNA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "ln [PFNA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Liu_2018_PFNA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# PFDA
Liu_2018_lm_model_PFDA <- lm(ln_PFDA_mean ~ TL_mean,
                             data = Liu_2018)

Liu_2018_PFDA_slope <- coef(Liu_2018_lm_model_PFDA)["TL_mean"]

summary(Liu_2018_lm_model_PFDA)
## 
## Call:
## lm(formula = ln_PFDA_mean ~ TL_mean, data = Liu_2018)
## 
## Residuals:
##       19       20       21       22       23       24 
## -0.06855 -0.18741  0.03599 -0.11689  0.50385 -0.16698 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)   
## (Intercept)   0.6697     0.7906   0.847  0.44468   
## TL_mean       1.7012     0.2830   6.011  0.00386 **
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.2901 on 4 degrees of freedom
##   (42 observations deleted due to missingness)
## Multiple R-squared:  0.9003, Adjusted R-squared:  0.8754 
## F-statistic: 36.13 on 1 and 4 DF,  p-value: 0.003857
ggplot(Liu_2018, aes(x = TL_mean, y = ln_PFDA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "ln [PFDA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Liu_2018_PFDA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# PFUnDA
Liu_2018_lm_model_PFUnDA <- lm(ln_PFUnDA_mean ~ TL_mean,
                             data = Liu_2018)

Liu_2018_PFUnDA_slope <- coef(Liu_2018_lm_model_PFUnDA)["TL_mean"]

summary(Liu_2018_lm_model_PFUnDA)
## 
## Call:
## lm(formula = ln_PFUnDA_mean ~ TL_mean, data = Liu_2018)
## 
## Residuals:
##      25      26      27      28      29      30 
## -0.4596 -0.1948  0.3587 -0.1544  0.7396 -0.2894 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)  
## (Intercept)   0.1569     1.3781   0.114   0.9148  
## TL_mean       1.8537     0.4951   3.744   0.0201 *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.5081 on 4 degrees of freedom
##   (42 observations deleted due to missingness)
## Multiple R-squared:  0.778,  Adjusted R-squared:  0.7225 
## F-statistic: 14.02 on 1 and 4 DF,  p-value: 0.02006
ggplot(Liu_2018, aes(x = TL_mean, y = ln_PFUnDA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "ln [PFUnDA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Liu_2018_PFUnDA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# PFDoDA
Liu_2018_lm_model_PFDoDA <- lm(ln_PFDoDA_mean ~ TL_mean,
                             data = Liu_2018)

Liu_2018_PFDoDA_slope <- coef(Liu_2018_lm_model_PFDoDA)["TL_mean"]

summary(Liu_2018_lm_model_PFDoDA)
## 
## Call:
## lm(formula = ln_PFDoDA_mean ~ TL_mean, data = Liu_2018)
## 
## Residuals:
##      31      32      33      34      35      36 
## -0.5404 -0.5503  0.9968 -0.2905  0.6158 -0.2314 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)  
## (Intercept)   0.2277     1.9814   0.115   0.9140  
## TL_mean       1.5351     0.7095   2.164   0.0965 .
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.7255 on 4 degrees of freedom
##   (42 observations deleted due to missingness)
## Multiple R-squared:  0.5392, Adjusted R-squared:  0.4241 
## F-statistic: 4.681 on 1 and 4 DF,  p-value: 0.09649
ggplot(Liu_2018, aes(x = TL_mean, y = ln_PFDoDA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "ln [PFDoDA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Liu_2018_PFDoDA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# PFTrDA 
Liu_2018_lm_model_PFTrDA <- lm(ln_PFTrDA_mean ~ TL_mean,
                             data = Liu_2018)

Liu_2018_PFTrDA_slope <- coef(Liu_2018_lm_model_PFTrDA)["TL_mean"]

summary(Liu_2018_lm_model_PFTrDA)
## 
## Call:
## lm(formula = ln_PFTrDA_mean ~ TL_mean, data = Liu_2018)
## 
## Residuals:
##      37      38      39      40      41      42 
## -0.5508 -0.5092  0.9813 -0.3004  0.6191 -0.2400 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)  
## (Intercept)   0.2900     1.9285   0.150   0.8877  
## TL_mean       1.5170     0.6929   2.189   0.0938 .
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.7171 on 4 degrees of freedom
##   (42 observations deleted due to missingness)
## Multiple R-squared:  0.5451, Adjusted R-squared:  0.4314 
## F-statistic: 4.794 on 1 and 4 DF,  p-value: 0.09375
ggplot(Liu_2018, aes(x = TL_mean, y = ln_PFTrDA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "ln [PFTrDA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Liu_2018_PFTrDA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# PFOS
Liu_2018_lm_model_PFOS <- lm(ln_PFOS_mean ~ TL_mean,
                             data = Liu_2018)

Liu_2018_PFOS_slope <- coef(Liu_2018_lm_model_PFOS)["TL_mean"]

summary(Liu_2018_lm_model_PFOS)
## 
## Call:
## lm(formula = ln_PFOS_mean ~ TL_mean, data = Liu_2018)
## 
## Residuals:
##       43       44       45       46       47       48 
## -0.70950  0.08285  0.29514  0.08153  0.54284 -0.29286 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)   
## (Intercept)  -1.9200     1.3471  -1.425  0.22721   
## TL_mean       2.3235     0.4834   4.806  0.00861 **
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.4961 on 4 degrees of freedom
##   (42 observations deleted due to missingness)
## Multiple R-squared:  0.8524, Adjusted R-squared:  0.8155 
## F-statistic:  23.1 on 1 and 4 DF,  p-value: 0.008608
ggplot(Liu_2018, aes(x = TL_mean, y = ln_PFOS_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "ln [PFOS]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Liu_2018_PFOS_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

S_019: Gao_2020

  • It provides standard deviations of individual observations. Weights were assigned (inverse of square standard deviation).
Gao_2020 <- read.csv(here("Rdata", "Gao_2020.csv"))
Gao_2020_PFHxS_weights <- 1 / (Gao_2020$log_PFHxS_sd^2)
Gao_2020_PFOS_weights <- 1 / (Gao_2020$log_PFOS_sd^2)
Gao_2020_PFBA_weights <- 1 / (Gao_2020$log_PFBA_sd^2)

# PFHxS
Gao_2020_lm_model_PFHxS <- lm(log_PFHxS_mean ~ TL_mean,
                              data = Gao_2020,
                              weights = Gao_2020_PFHxS_weights)

Gao_2020_PFHxS_slope <- coef(Gao_2020_lm_model_PFHxS)["TL_mean"]

summary(Gao_2020_lm_model_PFHxS)
## 
## Call:
## lm(formula = log_PFHxS_mean ~ TL_mean, data = Gao_2020, weights = Gao_2020_PFHxS_weights)
## 
## Weighted Residuals:
##       1       2       3       4       5 
## -0.1294  0.4357  0.5405 -0.9831  0.8118 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)   
## (Intercept)  1.36387    0.20545   6.638  0.00696 **
## TL_mean      0.32083    0.07768   4.130  0.02575 * 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.8415 on 3 degrees of freedom
##   (10 observations deleted due to missingness)
## Multiple R-squared:  0.8504, Adjusted R-squared:  0.8006 
## F-statistic: 17.06 on 1 and 3 DF,  p-value: 0.02575
ggplot(Gao_2020, aes(x = TL_mean, y = log_PFHxS_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "ln [PFHxS]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Gao_2020_PFHxS_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# PFOS
Gao_2020_lm_model_PFOS <- lm(log_PFOS_mean ~ TL_mean,
                             data = Gao_2020,
                             weights = Gao_2020_PFOS_weights)

Gao_2020_PFOS_slope <- coef(Gao_2020_lm_model_PFOS)["TL_mean"]

summary(Gao_2020_lm_model_PFOS)
## 
## Call:
## lm(formula = log_PFOS_mean ~ TL_mean, data = Gao_2020, weights = Gao_2020_PFOS_weights)
## 
## Weighted Residuals:
##       6       7       8       9      10 
## -0.6350  1.8519  0.9278  0.1464 -0.1534 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)   
## (Intercept)  1.01656    0.20394   4.985  0.01552 * 
## TL_mean      0.53595    0.06377   8.404  0.00353 **
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.257 on 3 degrees of freedom
##   (10 observations deleted due to missingness)
## Multiple R-squared:  0.9593, Adjusted R-squared:  0.9457 
## F-statistic: 70.63 on 1 and 3 DF,  p-value: 0.003534
ggplot(Gao_2020, aes(x = TL_mean, y = log_PFOS_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "ln [PFOS]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Gao_2020_PFOS_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# PFBA
Gao_2020_lm_model_PFBA <- lm(log_PFBA_mean ~ TL_mean,
                             data = Gao_2020,
                             weights = Gao_2020_PFBA_weights)

Gao_2020_PFBA_slope <- coef(Gao_2020_lm_model_PFBA)["TL_mean"]

summary(Gao_2020_lm_model_PFBA)
## 
## Call:
## lm(formula = log_PFBA_mean ~ TL_mean, data = Gao_2020, weights = Gao_2020_PFBA_weights)
## 
## Weighted Residuals:
##      11      12      13      14      15 
## -2.1590  1.0999  1.9516 -1.4293 -0.8947 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)  
## (Intercept)   2.1887     0.7679   2.850   0.0651 .
## TL_mean       0.2200     0.2866   0.768   0.4986  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.043 on 3 degrees of freedom
##   (10 observations deleted due to missingness)
## Multiple R-squared:  0.1642, Adjusted R-squared:  -0.1145 
## F-statistic: 0.5892 on 1 and 3 DF,  p-value: 0.4986
ggplot(Gao_2020, aes(x = TL_mean, y = log_PFBA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "ln [PFBA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Gao_2020_PFBA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

S_021: Chen_2018

  • It does not provide standard error or standard deviation values of individual observations. Weights cannot be assigned.
Chen_2018 <- read.csv(here("Rdata", "Chen_2018.csv"))

# PFOS
Chen_2018_lm_model_PFOS <- lm(ln_PFOS_mean ~ TL_mean,
                             data = Chen_2018)

Chen_2018_PFOS_slope <- coef(Chen_2018_lm_model_PFOS)["TL_mean"]

summary(Chen_2018_lm_model_PFOS)
## 
## Call:
## lm(formula = ln_PFOS_mean ~ TL_mean, data = Chen_2018)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.4006 -0.7029  0.1873  0.6795  0.9389 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  -0.7077     0.8970  -0.789 0.440984    
## TL_mean       1.0804     0.2650   4.076 0.000786 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.7952 on 17 degrees of freedom
##   (56 observations deleted due to missingness)
## Multiple R-squared:  0.4943, Adjusted R-squared:  0.4645 
## F-statistic: 16.62 on 1 and 17 DF,  p-value: 0.0007859
ggplot(Chen_2018, aes(x = TL_mean, y = ln_PFOS_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "ln [PFOS]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Chen_2018_PFOS_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# PFDA
Chen_2018_lm_model_PFDA <- lm(ln_PFDA_mean ~ TL_mean,
                             data = Chen_2018)

Chen_2018_PFDA_slope <- coef(Chen_2018_lm_model_PFDA)["TL_mean"]

summary(Chen_2018_lm_model_PFDA)
## 
## Call:
## lm(formula = ln_PFDA_mean ~ TL_mean, data = Chen_2018)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.4924 -0.2783  0.1079  0.3299  1.1225 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)   
## (Intercept)  -2.1265     0.7670  -2.772  0.01304 * 
## TL_mean       0.8427     0.2262   3.725  0.00168 **
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.6739 on 17 degrees of freedom
##   (56 observations deleted due to missingness)
## Multiple R-squared:  0.4495, Adjusted R-squared:  0.4171 
## F-statistic: 13.88 on 1 and 17 DF,  p-value: 0.001682
ggplot(Chen_2018, aes(x = TL_mean, y = ln_PFDA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "ln [PFDA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Chen_2018_PFDA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# PFUnDA
Chen_2018_lm_model_PFUnDA <- lm(ln_PFUnDA_mean ~ TL_mean,
                             data = Chen_2018)

Chen_2018_PFUnDA_slope <- coef(Chen_2018_lm_model_PFUnDA)["TL_mean"]

summary(Chen_2018_lm_model_PFUnDA)
## 
## Call:
## lm(formula = ln_PFUnDA_mean ~ TL_mean, data = Chen_2018)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.21192 -0.44358 -0.00398  0.31540  1.26934 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  -3.3659     0.7053  -4.772 0.000177 ***
## TL_mean       1.1860     0.2079   5.706 2.57e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.6272 on 17 degrees of freedom
##   (56 observations deleted due to missingness)
## Multiple R-squared:  0.657,  Adjusted R-squared:  0.6368 
## F-statistic: 32.56 on 1 and 17 DF,  p-value: 2.574e-05
ggplot(Chen_2018, aes(x = TL_mean, y = ln_PFUnDA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "ln [PFUnDA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Chen_2018_PFUnDA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# PFDoDA
Chen_2018_lm_model_PFDoDA <- lm(ln_PFDoDA_mean ~ TL_mean,
                             data = Chen_2018)

Chen_2018_PFDoDA_slope <- coef(Chen_2018_lm_model_PFDoDA)["TL_mean"]

summary(Chen_2018_lm_model_PFDoDA)
## 
## Call:
## lm(formula = ln_PFDoDA_mean ~ TL_mean, data = Chen_2018)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.45482 -0.44963 -0.07221  0.62496  1.86498 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  -3.9387     1.0054  -3.917 0.001228 ** 
## TL_mean       1.3673     0.2943   4.646 0.000269 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.8767 on 16 degrees of freedom
##   (57 observations deleted due to missingness)
## Multiple R-squared:  0.5743, Adjusted R-squared:  0.5477 
## F-statistic: 21.59 on 1 and 16 DF,  p-value: 0.0002691
ggplot(Chen_2018, aes(x = TL_mean, y = ln_PFDoDA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "ln [PFDoDA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Chen_2018_PFDoDA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

S_023: Du_2021

  • .
Du_2021 <- read.csv(here("Rdata", "Du_2021.csv"))

# PFBA
Du_2021_lm_model_PFBA <- lm(log_PFBA_mean ~ TL_mean,
                             data = Du_2021)

Du_2021_PFBA_slope <- coef(Du_2021_lm_model_PFBA)["TL_mean"]

summary(Du_2021_lm_model_PFBA)
## 
## Call:
## lm(formula = log_PFBA_mean ~ TL_mean, data = Du_2021)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.30627 -0.34398 -0.09988  0.38608  1.02936 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)  
## (Intercept)   2.2951     0.9659   2.376   0.0323 *
## TL_mean      -0.6853     0.3139  -2.183   0.0466 *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.6625 on 14 degrees of freedom
##   (96 observations deleted due to missingness)
## Multiple R-squared:  0.2539, Adjusted R-squared:  0.2006 
## F-statistic: 4.765 on 1 and 14 DF,  p-value: 0.04657
ggplot(Du_2021, aes(x = TL_mean, y = log_PFBA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "ln [PFBA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Du_2021_PFBA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# PFHxA
Du_2021_lm_model_PFHxA <- lm(log_PFHxA_mean ~ TL_mean,
                             data = Du_2021)

Du_2021_PFHxA_slope <- coef(Du_2021_lm_model_PFHxA)["TL_mean"]

summary(Du_2021_lm_model_PFHxA)
## 
## Call:
## lm(formula = log_PFHxA_mean ~ TL_mean, data = Du_2021)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.9300 -0.9866  0.1257  0.5217  3.5225 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   10.709      2.268   4.723 0.000327 ***
## TL_mean       -3.637      0.732  -4.968 0.000206 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.532 on 14 degrees of freedom
##   (96 observations deleted due to missingness)
## Multiple R-squared:  0.6381, Adjusted R-squared:  0.6122 
## F-statistic: 24.68 on 1 and 14 DF,  p-value: 0.0002063
ggplot(Du_2021, aes(x = TL_mean, y = log_PFHxA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "ln [PFHxA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Du_2021_PFHxA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# PFOA
Du_2021_lm_model_PFOA <- lm(log_PFOA_mean ~ TL_mean,
                             data = Du_2021)

Du_2021_PFOA_slope <- coef(Du_2021_lm_model_PFOA)["TL_mean"]

summary(Du_2021_lm_model_PFOA)
## 
## Call:
## lm(formula = log_PFOA_mean ~ TL_mean, data = Du_2021)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -3.268 -1.501 -1.321  2.185  4.022 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)
## (Intercept)    2.045      3.559   0.575    0.575
## TL_mean       -1.538      1.155  -1.331    0.204
## 
## Residual standard error: 2.442 on 14 degrees of freedom
##   (96 observations deleted due to missingness)
## Multiple R-squared:  0.1123, Adjusted R-squared:  0.04892 
## F-statistic: 1.772 on 1 and 14 DF,  p-value: 0.2045
ggplot(Du_2021, aes(x = TL_mean, y = log_PFOA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "ln [PFOA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Du_2021_PFOA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# PFUnDA
Du_2021_lm_model_PFUnDA <- lm(log_PFUnDA_mean ~ TL_mean,
                             data = Du_2021)

Du_2021_PFUnDA_slope <- coef(Du_2021_lm_model_PFUnDA)["TL_mean"]

summary(Du_2021_lm_model_PFUnDA)
## 
## Call:
## lm(formula = log_PFUnDA_mean ~ TL_mean, data = Du_2021)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2.93743 -0.77716  0.00012  1.13952  1.96534 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)
## (Intercept)  -0.2324     2.3010  -0.101    0.921
## TL_mean      -0.2403     0.7451  -0.323    0.752
## 
## Residual standard error: 1.565 on 14 degrees of freedom
##   (96 observations deleted due to missingness)
## Multiple R-squared:  0.007375,   Adjusted R-squared:  -0.06353 
## F-statistic: 0.104 on 1 and 14 DF,  p-value: 0.7518
ggplot(Du_2021, aes(x = TL_mean, y = log_PFUnDA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "ln [PFUnDA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Du_2021_PFUnDA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# PFTrDA
Du_2021_lm_model_PFTrDA <- lm(log_PFTrDA_mean ~ TL_mean,
                             data = Du_2021)

Du_2021_PFTrDA_slope <- coef(Du_2021_lm_model_PFTrDA)["TL_mean"]

summary(Du_2021_lm_model_PFTrDA)
## 
## Call:
## lm(formula = log_PFTrDA_mean ~ TL_mean, data = Du_2021)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.1058 -0.8821 -0.3883  1.2197  1.7205 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)
## (Intercept)   0.2763     1.8098   0.153    0.881
## TL_mean      -0.2579     0.5841  -0.441    0.666
## 
## Residual standard error: 1.242 on 14 degrees of freedom
##   (96 observations deleted due to missingness)
## Multiple R-squared:  0.01373,    Adjusted R-squared:  -0.05672 
## F-statistic: 0.1949 on 1 and 14 DF,  p-value: 0.6656
ggplot(Du_2021, aes(x = TL_mean, y = log_PFTrDA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "ln [PFTrDA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Du_2021_PFTrDA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# PFBS
Du_2021_lm_model_PFBS <- lm(log_PFBS_mean ~ TL_mean,
                             data = Du_2021)

Du_2021_PFBS_slope <- coef(Du_2021_lm_model_PFBS)["TL_mean"]

summary(Du_2021_lm_model_PFBS)
## 
## Call:
## lm(formula = log_PFBS_mean ~ TL_mean, data = Du_2021)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.7926 -0.8373 -0.2716  0.6350  3.2100 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)
## (Intercept)   0.2848     2.1601   0.132    0.897
## TL_mean      -0.8639     0.7010  -1.232    0.238
## 
## Residual standard error: 1.468 on 14 degrees of freedom
##   (96 observations deleted due to missingness)
## Multiple R-squared:  0.09787,    Adjusted R-squared:  0.03343 
## F-statistic: 1.519 on 1 and 14 DF,  p-value: 0.2381
ggplot(Du_2021, aes(x = TL_mean, y = log_PFBS_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "ln [PFBS]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Du_2021_PFBS_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# PFOS
Du_2021_lm_model_PFOS <- lm(log_PFOS_mean ~ TL_mean,
                             data = Du_2021)

Du_2021_PFOS_slope <- coef(Du_2021_lm_model_PFOS)["TL_mean"]

summary(Du_2021_lm_model_PFOS)
## 
## Call:
## lm(formula = log_PFOS_mean ~ TL_mean, data = Du_2021)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.9969 -0.8838  0.2544  1.1480  1.5738 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)
## (Intercept)  -0.7134     1.7562  -0.406    0.691
## TL_mean       0.4788     0.5691   0.841    0.414
## 
## Residual standard error: 1.205 on 14 degrees of freedom
##   (96 observations deleted due to missingness)
## Multiple R-squared:  0.04814,    Adjusted R-squared:  -0.01986 
## F-statistic: 0.708 on 1 and 14 DF,  p-value: 0.4143
ggplot(Du_2021, aes(x = TL_mean, y = log_PFOS_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "ln [PFOS]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Du_2021_PFOS_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

S_035: Ren_2022

  • It provides standard errors of individual observations. Weights were assigned (inverse of standard error).
Ren_2022 <- read.csv(here("Rdata", "Ren_2022.csv"))

Ren_2022_weights <- 1 / Ren_2022$se^2

# PFHxS
Ren_2022_lm_model_PFHxS <- lm(log_PFHxS_mean ~ TL_mean,
                              data = Ren_2022,
                              weights = Ren_2022_weights)

Ren_2022_PFHxS_slope <- coef(Ren_2022_lm_model_PFHxS)["TL_mean"]

summary(Ren_2022_lm_model_PFHxS)
## 
## Call:
## lm(formula = log_PFHxS_mean ~ TL_mean, data = Ren_2022, weights = Ren_2022_weights)
## 
## Weighted Residuals:
##        15        16        17        18        19        20        21 
## -24.37472  85.50317 -18.69589 -59.36783 -55.51457   2.65450  -0.00396 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)
## (Intercept)  -1.4930     0.7840  -1.904    0.115
## TL_mean       0.2696     0.2946   0.915    0.402
## 
## Residual standard error: 54.53 on 5 degrees of freedom
##   (56 observations deleted due to missingness)
## Multiple R-squared:  0.1435, Adjusted R-squared:  -0.02782 
## F-statistic: 0.8376 on 1 and 5 DF,  p-value: 0.4021
ggplot(Ren_2022, aes(x = TL_mean, y = log_PFHxS_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "log [PFHxS]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Ren_2022_PFHxS_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# PFOS - we cannot assign weights because SE = 0
Ren_2022_lm_model_PFOS <- lm(log_PFOS_mean ~ TL_mean,
                              data = Ren_2022)

Ren_2022_PFOS_slope <- coef(Ren_2022_lm_model_PFOS)["TL_mean"]

summary(Ren_2022_lm_model_PFOS)
## 
## Call:
## lm(formula = log_PFOS_mean ~ TL_mean, data = Ren_2022)
## 
## Residuals:
##       36       37       38       39       40       41       42 
##  0.03965 -0.46090  0.14973  0.25790  0.07363  0.02297 -0.08300 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)   
## (Intercept)  -1.0377     0.4638  -2.237  0.07547 . 
## TL_mean       0.5930     0.1419   4.179  0.00866 **
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.2513 on 5 degrees of freedom
##   (56 observations deleted due to missingness)
## Multiple R-squared:  0.7774, Adjusted R-squared:  0.7329 
## F-statistic: 17.46 on 1 and 5 DF,  p-value: 0.008664
ggplot(Ren_2022, aes(x = TL_mean, y = log_PFOS_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "log [PFOS]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Ren_2022_PFOS_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# PFOA
Ren_2022_lm_model_PFOA <- lm(log_PFOA_mean ~ TL_mean,
                              data = Ren_2022)

Ren_2022_PFOA_slope <- coef(Ren_2022_lm_model_PFOA)["TL_mean"]

summary(Ren_2022_lm_model_PFOA)
## 
## Call:
## lm(formula = log_PFOA_mean ~ TL_mean, data = Ren_2022)
## 
## Residuals:
##       29       30       31       32       33       34       35 
## -0.05748  0.33727 -0.23359 -0.72102  0.25283  0.69789 -0.27591 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)  
## (Intercept)  -3.4895     0.9569  -3.647   0.0148 *
## TL_mean       1.0531     0.2919   3.608   0.0154 *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.5135 on 5 degrees of freedom
##   (56 observations deleted due to missingness)
## Multiple R-squared:  0.7225, Adjusted R-squared:  0.667 
## F-statistic: 13.02 on 1 and 5 DF,  p-value: 0.01541
ggplot(Ren_2022, aes(x = TL_mean, y = log_PFOA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "log [PFOA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Ren_2022_PFOA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# PFNA
Ren_2022_lm_model_PFNA <- lm(log_PFNA_mean ~ TL_mean,
                              data = Ren_2022)

Ren_2022_PFNA_slope <- coef(Ren_2022_lm_model_PFNA)["TL_mean"]

summary(Ren_2022_lm_model_PFNA)
## 
## Call:
## lm(formula = log_PFNA_mean ~ TL_mean, data = Ren_2022)
## 
## Residuals:
##         22         23         24         25         26         27         28 
## -0.0530391 -0.0315376 -0.0009183 -0.1626527  0.0680890  0.3972287 -0.2171700 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)   
## (Intercept)  -1.4709     0.4058  -3.624  0.01515 * 
## TL_mean       0.5376     0.1239   4.340  0.00743 **
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.219 on 5 degrees of freedom
##   (56 observations deleted due to missingness)
## Multiple R-squared:  0.7902, Adjusted R-squared:  0.7483 
## F-statistic: 18.84 on 1 and 5 DF,  p-value: 0.007429
ggplot(Ren_2022, aes(x = TL_mean, y = log_PFNA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "log [PFNA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Ren_2022_PFNA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# PFDA
Ren_2022_lm_model_PFDA <- lm(log_PFDA_mean ~ TL_mean,
                              data = Ren_2022)

Ren_2022_PFDA_slope <- coef(Ren_2022_lm_model_PFDA)["TL_mean"]

summary(Ren_2022_lm_model_PFDA)
## 
## Call:
## lm(formula = log_PFDA_mean ~ TL_mean, data = Ren_2022)
## 
## Residuals:
##         1         2         3         4         5         6         7 
## -0.315733 -0.048245  0.221757  0.192724  0.312178  0.001054 -0.363735 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)   
## (Intercept)  -3.3854     0.5370  -6.305  0.00148 **
## TL_mean       0.9916     0.1637   6.057  0.00177 **
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.2892 on 5 degrees of freedom
##   (56 observations deleted due to missingness)
## Multiple R-squared:  0.8801, Adjusted R-squared:  0.8561 
## F-statistic: 36.69 on 1 and 5 DF,  p-value: 0.00177
ggplot(Ren_2022, aes(x = TL_mean, y = log_PFDA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "log [PFDA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Ren_2022_PFDA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# PFUnDA
Ren_2022_lm_model_PFUnDA <- lm(log_PFUnDA_mean ~ TL_mean,
                              data = Ren_2022)

Ren_2022_PFUnDA_slope <- coef(Ren_2022_lm_model_PFUnDA)["TL_mean"]

summary(Ren_2022_lm_model_PFUnDA)
## 
## Call:
## lm(formula = log_PFUnDA_mean ~ TL_mean, data = Ren_2022)
## 
## Residuals:
##        57        58        59        60        61        62        63 
## -0.063059  0.049001  0.048048 -0.056608  0.194867 -0.162308 -0.009941 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -1.72208    0.22768  -7.564 0.000641 ***
## TL_mean      0.58765    0.06948   8.458 0.000379 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.1235 on 5 degrees of freedom
##   (56 observations deleted due to missingness)
## Multiple R-squared:  0.9347, Adjusted R-squared:  0.9216 
## F-statistic: 71.54 on 1 and 5 DF,  p-value: 0.0003793
ggplot(Ren_2022, aes(x = TL_mean, y = log_PFUnDA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "log [PFUnDA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Ren_2022_PFUnDA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# PFDoDA
Ren_2022_lm_model_PFDoDA <- lm(log_PFDoDA_mean ~ TL_mean,
                              data = Ren_2022)

Ren_2022_PFDoDA_slope <- coef(Ren_2022_lm_model_PFDoDA)["TL_mean"]

summary(Ren_2022_lm_model_PFDoDA)
## 
## Call:
## lm(formula = log_PFDoDA_mean ~ TL_mean, data = Ren_2022)
## 
## Residuals:
##        8        9       10       11       12       13       14 
##  0.11338 -0.53390  0.14094  0.09166  0.29500 -0.09679 -0.01030 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)   
## (Intercept)  -2.4146     0.5360  -4.504  0.00637 **
## TL_mean       0.5876     0.1640   3.583  0.01582 * 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.2907 on 5 degrees of freedom
##   (56 observations deleted due to missingness)
## Multiple R-squared:  0.7197, Adjusted R-squared:  0.6637 
## F-statistic: 12.84 on 1 and 5 DF,  p-value: 0.01582
ggplot(Ren_2022, aes(x = TL_mean, y = log_PFDoDA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "log [PFDoDA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Ren_2022_PFDoDA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# PFTrDA
Ren_2022_lm_model_PFTrDA <- lm(log_PFTrDA_mean ~ TL_mean,
                              data = Ren_2022)

Ren_2022_PFTrDA_slope <- coef(Ren_2022_lm_model_PFTrDA)["TL_mean"]

summary(Ren_2022_lm_model_PFTrDA)
## 
## Call:
## lm(formula = log_PFTrDA_mean ~ TL_mean, data = Ren_2022)
## 
## Residuals:
##       50       51       52       53       54       55       56 
## -0.01362 -0.47249  0.20482  0.21696  0.24087 -0.05042 -0.12611 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)   
## (Intercept)  -2.1104     0.5140  -4.106   0.0093 **
## TL_mean       0.6213     0.1571   3.956   0.0108 * 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.2789 on 5 degrees of freedom
##   (56 observations deleted due to missingness)
## Multiple R-squared:  0.7579, Adjusted R-squared:  0.7095 
## F-statistic: 15.65 on 1 and 5 DF,  p-value: 0.01078
ggplot(Ren_2022, aes(x = TL_mean, y = log_PFTrDA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "log [PFTrDA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Ren_2022_PFTrDA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# PFTeDA
Ren_2022_lm_model_PFTeDA <- lm(log_PFTeDA_mean ~ TL_mean,
                              data = Ren_2022)

Ren_2022_PFTeDA_slope <- coef(Ren_2022_lm_model_PFTeDA)["TL_mean"]

summary(Ren_2022_lm_model_PFTeDA)
## 
## Call:
## lm(formula = log_PFTeDA_mean ~ TL_mean, data = Ren_2022)
## 
## Residuals:
##        43        44        45        46        47        48        49 
## -0.010601 -0.207935 -0.058366  0.175704  0.192626  0.007405 -0.098833 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -2.25349    0.29090  -7.746 0.000573 ***
## TL_mean      0.44250    0.08888   4.978 0.004181 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.1578 on 5 degrees of freedom
##   (56 observations deleted due to missingness)
## Multiple R-squared:  0.8321, Adjusted R-squared:  0.7986 
## F-statistic: 24.79 on 1 and 5 DF,  p-value: 0.004181
ggplot(Ren_2022, aes(x = TL_mean, y = log_PFTeDA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "log [PFTeDA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Ren_2022_PFTeDA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

S_054: Koch_2021

  • It does not provide standard error or standard deviation values of individual observations. Weights cannot be assigned.

Food web 1 - freshwater

Koch_2021_freshwater <- read.csv(here("Rdata", "Koch_2021_freshwater.csv"))
Koch_2021_freshwater_lm_model_PFOS <- lm(log_PFOS_mean ~ delta_15N_mean,
                                         data = Koch_2021_freshwater)

Koch_2021_freshwater_PFOS_slope <- coef(Koch_2021_freshwater_lm_model_PFOS)["delta_15N_mean"]

summary(Koch_2021_freshwater_lm_model_PFOS)
## 
## Call:
## lm(formula = log_PFOS_mean ~ delta_15N_mean, data = Koch_2021_freshwater)
## 
## Residuals:
##        1        2        3        4        5        6 
## -0.06970  0.12586 -0.08788  0.13240 -0.06527 -0.03541 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)  
## (Intercept)     1.00747    0.42991   2.343   0.0791 .
## delta_15N_mean  0.09884    0.04235   2.334   0.0799 .
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.1134 on 4 degrees of freedom
## Multiple R-squared:  0.5766, Adjusted R-squared:  0.4707 
## F-statistic: 5.447 on 1 and 4 DF,  p-value: 0.07992
ggplot(Koch_2021_freshwater, aes(x = delta_15N_mean, y = log_PFOS_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "delta 15N",
       y = "log [PFOS]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Koch_2021_freshwater_PFOS_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

Food web 2 - terrestrial

Koch_2021_terrestrial <- read.csv(here("Rdata", "Koch_2021_terrestrial.csv"))

Koch_2021_terrestrial_lm_model_PFOS <- lm(log_PFOS_mean ~ delta_15N_mean,
                                         data = Koch_2021_terrestrial)

Koch_2021_terrestrial_PFOS_slope <- coef(Koch_2021_terrestrial_lm_model_PFOS)["delta_15N_mean"]

summary(Koch_2021_terrestrial_lm_model_PFOS)
## 
## Call:
## lm(formula = log_PFOS_mean ~ delta_15N_mean, data = Koch_2021_terrestrial)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.79525 -0.08715  0.13252  0.19273  0.41636 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)    
## (Intercept)     2.26920    0.19164  11.841 3.31e-07 ***
## delta_15N_mean  0.05135    0.04569   1.124    0.287    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.3553 on 10 degrees of freedom
## Multiple R-squared:  0.1121, Adjusted R-squared:  0.02332 
## F-statistic: 1.263 on 1 and 10 DF,  p-value: 0.2874
ggplot(Koch_2021_terrestrial, aes(x = delta_15N_mean, y = log_PFOS_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "delta 15N",
       y = "log [PFOS]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Koch_2021_terrestrial_PFOS_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

S_056: Li_2008

  • It does not provide standard error or standard deviation values of individual observations. Weights cannot be assigned.

Food web 1 - Tilapia excluded

Li_2008_fw1 <- read.csv(here("Rdata", "Li_2008_fw1.csv"))
Li_2008_fw1_lm_model_PFOS <- lm(ln_PFOS_mean ~ TL_mean,
                                data = Li_2008_fw1)

Li_2008_fw1_PFOS_slope <- coef(Li_2008_fw1_lm_model_PFOS)["TL_mean"]

summary(Li_2008_fw1_lm_model_PFOS)
## 
## Call:
## lm(formula = ln_PFOS_mean ~ TL_mean, data = Li_2008_fw1)
## 
## Residuals:
##        1        2        3        4        5 
## -0.08384  0.04462 -0.52825  0.67704 -0.10957 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)  
## (Intercept)  -2.3121     1.3038  -1.773   0.1743  
## TL_mean       1.9157     0.4859   3.943   0.0291 *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.5028 on 3 degrees of freedom
## Multiple R-squared:  0.8382, Adjusted R-squared:  0.7843 
## F-statistic: 15.54 on 1 and 3 DF,  p-value: 0.02909
ggplot(Li_2008_fw1, aes(x = TL_mean, y = ln_PFOS_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "ln [PFOS]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Li_2008_fw1_PFOS_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

Food web 2 - Tilapia included

Li_2008_fw2 <- read.csv(here("Rdata", "Li_2008_fw2.csv"))
Li_2008_fw2_lm_model_PFOS <- lm(ln_PFOS_mean ~ TL_mean,
                                data = Li_2008_fw2)

Li_2008_fw2_PFOS_slope <- coef(Li_2008_fw2_lm_model_PFOS)["TL_mean"]

summary(Li_2008_fw2_lm_model_PFOS)
## 
## Call:
## lm(formula = ln_PFOS_mean ~ TL_mean, data = Li_2008_fw2)
## 
## Residuals:
##       1       2       3       4       5       6 
## -0.8217  0.1095 -0.3514  0.9595  1.3742 -1.2702 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)
## (Intercept)    1.504      2.131   0.706    0.519
## TL_mean        0.376      0.727   0.517    0.632
## 
## Residual standard error: 1.144 on 4 degrees of freedom
## Multiple R-squared:  0.06267,    Adjusted R-squared:  -0.1717 
## F-statistic: 0.2675 on 1 and 4 DF,  p-value: 0.6323
ggplot(Li_2008_fw2, aes(x = TL_mean, y = ln_PFOS_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "ln [PFOS]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Li_2008_fw2_PFOS_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

S_057: Pan_2010

  • It does not provide standard error or standard deviation values of individual observations. Weights cannot be assigned.
Pan_2010 <- read.csv(here("Rdata", "Pan_2010.csv"))
Pan_2010_lm_model_PFOS <- lm(log_PFCs_mean ~ TL_mean,
                                data = Pan_2010)

Pan_2010_PFOS_slope <- coef(Pan_2010_lm_model_PFOS)["TL_mean"]

summary(Pan_2010_lm_model_PFOS)
## 
## Call:
## lm(formula = log_PFCs_mean ~ TL_mean, data = Pan_2010)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.55463 -0.22439 -0.08986  0.37965  0.54206 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)
## (Intercept)   1.3864     0.8956   1.548    0.153
## TL_mean      -0.1822     0.3656  -0.498    0.629
## 
## Residual standard error: 0.3952 on 10 degrees of freedom
## Multiple R-squared:  0.02424,    Adjusted R-squared:  -0.07333 
## F-statistic: 0.2485 on 1 and 10 DF,  p-value: 0.6289
ggplot(Pan_2010, aes(x = TL_mean, y = log_PFCs_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "log [PFOS]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Pan_2010_PFOS_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

S_058: Van de Vijver_2003

  • .
Van_de_Vijver_2003 <- read.csv(here("Rdata", "Van_de_Vijver_2003.csv"))
Van_de_Vijver_2003_lm_model_PFOS <- lm(log_PFOS_mean ~ delta_15N_mean,
                                       data = Van_de_Vijver_2003)

Van_de_Vijver_2003_PFOS_slope <- coef(Van_de_Vijver_2003_lm_model_PFOS)["delta_15N_mean"]

summary(Van_de_Vijver_2003_lm_model_PFOS)
## 
## Call:
## lm(formula = log_PFOS_mean ~ delta_15N_mean, data = Van_de_Vijver_2003)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.86597 -0.23342  0.00599  0.21398  0.73505 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)    
## (Intercept)     0.26775    0.32963   0.812    0.419    
## delta_15N_mean  0.09392    0.01877   5.005 3.82e-06 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.353 on 72 degrees of freedom
## Multiple R-squared:  0.2581, Adjusted R-squared:  0.2478 
## F-statistic: 25.05 on 1 and 72 DF,  p-value: 3.82e-06
ggplot(Van_de_Vijver_2003, aes(x = delta_15N_mean, y = log_PFOS_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "delta 15N",
       y = "log [PFOS]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Van_de_Vijver_2003_PFOS_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

S_061: Barghi_2018

  • .
Barghi_2018 <- read.csv(here("Rdata", "Barghi_2018.csv"))

Barghi_2018_lm_model_PFNA <- lm(log_PFNA_mean ~ delta_15N_mean,
                                       data = Barghi_2018)

Barghi_2018_PFNA_slope <- coef(Barghi_2018_lm_model_PFNA)["delta_15N_mean"]

summary(Barghi_2018_lm_model_PFNA)
## 
## Call:
## lm(formula = log_PFNA_mean ~ delta_15N_mean, data = Barghi_2018)
## 
## Residuals:
##         1         2         3         4         5         6 
## -0.190716  0.079714  0.068607  0.003892  0.159700 -0.121198 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)  
## (Intercept)    -0.69815    0.23389  -2.985   0.0405 *
## delta_15N_mean  0.08922    0.02602   3.428   0.0266 *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.148 on 4 degrees of freedom
## Multiple R-squared:  0.7461, Adjusted R-squared:  0.6826 
## F-statistic: 11.75 on 1 and 4 DF,  p-value: 0.02658
ggplot(Barghi_2018, aes(x = delta_15N_mean, y = log_PFNA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "delta 15N",
       y = "log [PFOS]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Barghi_2018_PFNA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

S_060: Kobayashi_2018

  • It does not provide standard error or standard deviation values of individual observations. Weights cannot be assigned.
Kobayashi_2018 <- read.csv(here("Rdata", "Kobayashi_2018.csv"))

# PFHxS
Kobayashi_2018_lm_model_PFHxS <- lm(log_PFHxS_mean ~ TL_mean,
                                    data = Kobayashi_2018)

Kobayashi_2018_PFHxS_slope <- coef(Kobayashi_2018_lm_model_PFHxS)["TL_mean"]

summary(Kobayashi_2018_lm_model_PFHxS)
## 
## Call:
## lm(formula = log_PFHxS_mean ~ TL_mean, data = Kobayashi_2018)
## 
## Residuals:
##       1       2       3       4       5 
## -0.2604 -0.4964  0.0557  0.3224  0.3787 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)
## (Intercept)  -0.7114     0.8370  -0.850    0.458
## TL_mean       0.5243     0.3206   1.636    0.200
## 
## Residual standard error: 0.4339 on 3 degrees of freedom
##   (40 observations deleted due to missingness)
## Multiple R-squared:  0.4714, Adjusted R-squared:  0.2952 
## F-statistic: 2.675 on 1 and 3 DF,  p-value: 0.2004
ggplot(Kobayashi_2018, aes(x = TL_mean, y = log_PFHxS_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "log [PFHxS]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Kobayashi_2018_PFHxS_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# PFOS
Kobayashi_2018_lm_model_PFOS <- lm(log_PFOS_mean ~ TL_mean,
                                    data = Kobayashi_2018)

Kobayashi_2018_PFOS_slope <- coef(Kobayashi_2018_lm_model_PFOS)["TL_mean"]

summary(Kobayashi_2018_lm_model_PFOS)
## 
## Call:
## lm(formula = log_PFOS_mean ~ TL_mean, data = Kobayashi_2018)
## 
## Residuals:
##       6       7       8       9      10 
## -0.2781  1.0468  0.3711  0.5048 -1.6446 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)
## (Intercept)  -1.5615     2.3016  -0.678    0.546
## TL_mean       0.5256     0.8815   0.596    0.593
## 
## Residual standard error: 1.193 on 3 degrees of freedom
##   (40 observations deleted due to missingness)
## Multiple R-squared:  0.106,  Adjusted R-squared:  -0.1921 
## F-statistic: 0.3555 on 1 and 3 DF,  p-value: 0.593
ggplot(Kobayashi_2018, aes(x = TL_mean, y = log_PFOS_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "log [PFOS]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Kobayashi_2018_PFOS_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# PFPeA
Kobayashi_2018_lm_model_PFPeA <- lm(log_PFPeA_mean ~ TL_mean,
                                    data = Kobayashi_2018)

Kobayashi_2018_PFPeA_slope <- coef(Kobayashi_2018_lm_model_PFPeA)["TL_mean"]

summary(Kobayashi_2018_lm_model_PFPeA)
## 
## Call:
## lm(formula = log_PFPeA_mean ~ TL_mean, data = Kobayashi_2018)
## 
## Residuals:
##      11      12      13      14      15 
## -0.1814 -0.2662  0.2229  0.1064  0.1183 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)
## (Intercept)  -0.5678     0.4709  -1.206    0.314
## TL_mean       0.2644     0.1803   1.466    0.239
## 
## Residual standard error: 0.2441 on 3 degrees of freedom
##   (40 observations deleted due to missingness)
## Multiple R-squared:  0.4174, Adjusted R-squared:  0.2232 
## F-statistic: 2.149 on 1 and 3 DF,  p-value: 0.2389
ggplot(Kobayashi_2018, aes(x = TL_mean, y = log_PFPeA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "log [PFPeA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Kobayashi_2018_PFPeA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# PFHxA
Kobayashi_2018_lm_model_PFHxA <- lm(log_PFHxA_mean ~ TL_mean,
                                    data = Kobayashi_2018)

Kobayashi_2018_PFHxA_slope <- coef(Kobayashi_2018_lm_model_PFHxA)["TL_mean"]

summary(Kobayashi_2018_lm_model_PFHxA)
## 
## Call:
## lm(formula = log_PFHxA_mean ~ TL_mean, data = Kobayashi_2018)
## 
## Residuals:
##      16      17      18      19      20 
## -0.2606 -0.7363  0.4511 -0.0337  0.5796 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)
## (Intercept)  -0.9110     1.1947  -0.763    0.501
## TL_mean       0.4971     0.4576   1.086    0.357
## 
## Residual standard error: 0.6193 on 3 degrees of freedom
##   (40 observations deleted due to missingness)
## Multiple R-squared:  0.2824, Adjusted R-squared:  0.04314 
## F-statistic:  1.18 on 1 and 3 DF,  p-value: 0.3568
ggplot(Kobayashi_2018, aes(x = TL_mean, y = log_PFHxA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "log [PFHxA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Kobayashi_2018_PFHxA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# PFHpA
Kobayashi_2018_lm_model_PFHpA <- lm(log_PFHpA_mean ~ TL_mean,
                                    data = Kobayashi_2018)

Kobayashi_2018_PFHpA_slope <- coef(Kobayashi_2018_lm_model_PFHpA)["TL_mean"]

summary(Kobayashi_2018_lm_model_PFHpA)
## 
## Call:
## lm(formula = log_PFHpA_mean ~ TL_mean, data = Kobayashi_2018)
## 
## Residuals:
##       21       22       23       24       25 
## -0.28008 -0.23828  0.42687  0.14543 -0.05394 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)
## (Intercept)  -1.2279     0.6509  -1.886    0.156
## TL_mean       0.3866     0.2493   1.551    0.219
## 
## Residual standard error: 0.3374 on 3 degrees of freedom
##   (40 observations deleted due to missingness)
## Multiple R-squared:  0.445,  Adjusted R-squared:   0.26 
## F-statistic: 2.405 on 1 and 3 DF,  p-value: 0.2187
ggplot(Kobayashi_2018, aes(x = TL_mean, y = log_PFHpA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "log [PFHpA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Kobayashi_2018_PFHpA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# PFOA
Kobayashi_2018_lm_model_PFOA <- lm(log_PFOA_mean ~ TL_mean,
                                    data = Kobayashi_2018)

Kobayashi_2018_PFOA_slope <- coef(Kobayashi_2018_lm_model_PFOA)["TL_mean"]

summary(Kobayashi_2018_lm_model_PFOA)
## 
## Call:
## lm(formula = log_PFOA_mean ~ TL_mean, data = Kobayashi_2018)
## 
## Residuals:
##       26       27       28       29       30 
## -0.10200 -0.06113  0.77839 -0.40782 -0.20744 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)
## (Intercept)  0.25244    1.01433   0.249    0.820
## TL_mean     -0.04298    0.38847  -0.111    0.919
## 
## Residual standard error: 0.5258 on 3 degrees of freedom
##   (40 observations deleted due to missingness)
## Multiple R-squared:  0.004064,   Adjusted R-squared:  -0.3279 
## F-statistic: 0.01224 on 1 and 3 DF,  p-value: 0.9189
ggplot(Kobayashi_2018, aes(x = TL_mean, y = log_PFOA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "log [PFOA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Kobayashi_2018_PFOA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# PFNA
Kobayashi_2018_lm_model_PFNA <- lm(log_PFNA_mean ~ TL_mean,
                                    data = Kobayashi_2018)

Kobayashi_2018_PFNA_slope <- coef(Kobayashi_2018_lm_model_PFNA)["TL_mean"]

summary(Kobayashi_2018_lm_model_PFNA)
## 
## Call:
## lm(formula = log_PFNA_mean ~ TL_mean, data = Kobayashi_2018)
## 
## Residuals:
##       31       32       33       34       35 
## -0.08261 -0.10630  0.09168  0.05956  0.03767 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)  
## (Intercept)   0.4743     0.1977   2.399   0.0959 .
## TL_mean      -0.2353     0.0757  -3.108   0.0530 .
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.1025 on 3 degrees of freedom
##   (40 observations deleted due to missingness)
## Multiple R-squared:  0.763,  Adjusted R-squared:  0.684 
## F-statistic:  9.66 on 1 and 3 DF,  p-value: 0.05296
ggplot(Kobayashi_2018, aes(x = TL_mean, y = log_PFNA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "log [PFNA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Kobayashi_2018_PFNA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# PFDA
Kobayashi_2018_lm_model_PFDA <- lm(log_PFDA_mean ~ TL_mean,
                                    data = Kobayashi_2018)

Kobayashi_2018_PFDA_slope <- coef(Kobayashi_2018_lm_model_PFDA)["TL_mean"]

summary(Kobayashi_2018_lm_model_PFDA)
## 
## Call:
## lm(formula = log_PFDA_mean ~ TL_mean, data = Kobayashi_2018)
## 
## Residuals:
##       36       37       38       39       40 
## -0.04724  0.17787  0.12017  0.04292 -0.29371 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)
## (Intercept) -0.30509    0.41138  -0.742    0.512
## TL_mean     -0.04466    0.15755  -0.283    0.795
## 
## Residual standard error: 0.2132 on 3 degrees of freedom
##   (40 observations deleted due to missingness)
## Multiple R-squared:  0.02609,    Adjusted R-squared:  -0.2986 
## F-statistic: 0.08036 on 1 and 3 DF,  p-value: 0.7953
ggplot(Kobayashi_2018, aes(x = TL_mean, y = log_PFDA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "log [PFDA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Kobayashi_2018_PFDA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# PFUnDA
Kobayashi_2018_lm_model_PFUnDA <- lm(log_PFUnDA_mean ~ TL_mean,
                                    data = Kobayashi_2018)

Kobayashi_2018_PFUnDA_slope <- coef(Kobayashi_2018_lm_model_PFUnDA)["TL_mean"]

summary(Kobayashi_2018_lm_model_PFUnDA)
## 
## Call:
## lm(formula = log_PFUnDA_mean ~ TL_mean, data = Kobayashi_2018)
## 
## Residuals:
##      41      42      43      44      45 
## -0.3197  0.2082  0.5561  0.2345 -0.6791 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)
## (Intercept)  0.04905    1.09747   0.045    0.967
## TL_mean     -0.23956    0.42030  -0.570    0.609
## 
## Residual standard error: 0.5689 on 3 degrees of freedom
##   (40 observations deleted due to missingness)
## Multiple R-squared:  0.0977, Adjusted R-squared:  -0.2031 
## F-statistic: 0.3249 on 1 and 3 DF,  p-value: 0.6086
ggplot(Kobayashi_2018, aes(x = TL_mean, y = log_PFUnDA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "log [PFUnDA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Kobayashi_2018_PFUnDA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

S_047: Heimstad_2024

  • It does not provide standard error or standard deviation values of individual observations. Weights cannot be assigned.
Heimstad_2024 <- read.csv(here("Rdata", "Heimstad_2024.csv"))

# PFOS
Heimstad_2024_lm_model_PFOS <- lm(log_PFOS_mean ~ TL_mean,
                                    data = Heimstad_2024)

Heimstad_2024_PFOS_slope <- coef(Heimstad_2024_lm_model_PFOS)["TL_mean"]

summary(Heimstad_2024_lm_model_PFOS)
## 
## Call:
## lm(formula = log_PFOS_mean ~ TL_mean, data = Heimstad_2024)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.74638 -0.33568 -0.03996  0.27578  1.65293 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)   
## (Intercept)  0.75958    0.24702   3.075  0.00263 **
## TL_mean      0.22448    0.08579   2.616  0.01007 * 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.5877 on 116 degrees of freedom
##   (236 observations deleted due to missingness)
## Multiple R-squared:  0.05573,    Adjusted R-squared:  0.04759 
## F-statistic: 6.846 on 1 and 116 DF,  p-value: 0.01007
ggplot(Heimstad_2024, aes(x = TL_mean, y = log_PFOS_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "log [PFOS]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Heimstad_2024_PFOS_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# PFUnDA
Heimstad_2024_lm_model_PFUnDA <- lm(log_PFUnDA_mean ~ TL_mean,
                                    data = Heimstad_2024)

Heimstad_2024_PFUnDA_slope <- coef(Heimstad_2024_lm_model_PFUnDA)["TL_mean"]

summary(Heimstad_2024_lm_model_PFUnDA)
## 
## Call:
## lm(formula = log_PFUnDA_mean ~ TL_mean, data = Heimstad_2024)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2.59916 -0.29507  0.05416  0.30239  2.16661 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -0.76304    0.23977  -3.182  0.00187 ** 
## TL_mean      0.35549    0.08327   4.269 4.04e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.5704 on 116 degrees of freedom
##   (236 observations deleted due to missingness)
## Multiple R-squared:  0.1358, Adjusted R-squared:  0.1283 
## F-statistic: 18.22 on 1 and 116 DF,  p-value: 4.036e-05
ggplot(Heimstad_2024, aes(x = TL_mean, y = log_PFUnDA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "log [PFUnDA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Heimstad_2024_PFUnDA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# PFDoDA
Heimstad_2024_lm_model_PFDoDA <- lm(log_PFDoDA_mean ~ TL_mean,
                                    data = Heimstad_2024)

Heimstad_2024_PFDoDA_slope <- coef(Heimstad_2024_lm_model_PFDoDA)["TL_mean"]

summary(Heimstad_2024_lm_model_PFDoDA)
## 
## Call:
## lm(formula = log_PFDoDA_mean ~ TL_mean, data = Heimstad_2024)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.9187 -0.3303  0.0871  0.4149  1.3207 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -0.53645    0.25043  -2.142   0.0343 *  
## TL_mean      0.39330    0.08681   4.531 1.44e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.5947 on 116 degrees of freedom
##   (236 observations deleted due to missingness)
## Multiple R-squared:  0.1504, Adjusted R-squared:  0.143 
## F-statistic: 20.53 on 1 and 116 DF,  p-value: 1.436e-05
ggplot(Heimstad_2024, aes(x = TL_mean, y = log_PFDoDA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "log [PFDoDA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Heimstad_2024_PFDoDA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

S_024: Li_2021

  • It does not provide standard error or standard deviation values of individual observations. Weights cannot be assigned.
Li_2021 <- read.csv(here("Rdata", "Li_2021.csv"))

# HFPO-TeA
Li_2021_lm_model_HFPOTeA <- lm(log_HFPO.TeA_mean ~ TL_mean,
                                    data = Li_2021)

Li_2021_HFPOTeA_slope <- coef(Li_2021_lm_model_HFPOTeA)["TL_mean"]

summary(Li_2021_lm_model_HFPOTeA)
## 
## Call:
## lm(formula = log_HFPO.TeA_mean ~ TL_mean, data = Li_2021)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.60898 -0.27421 -0.08415  0.30463  0.57852 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  -2.1650     0.4681  -4.625 0.000944 ***
## TL_mean       0.4675     0.1447   3.230 0.009024 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.4054 on 10 degrees of freedom
##   (68 observations deleted due to missingness)
## Multiple R-squared:  0.5106, Adjusted R-squared:  0.4616 
## F-statistic: 10.43 on 1 and 10 DF,  p-value: 0.009024
ggplot(Li_2021, aes(x = TL_mean, y = log_HFPO.TeA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "log [HFPOTeA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Li_2021_HFPOTeA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# HFPO-TrA
Li_2021_lm_model_HFPOTrA <- lm(log_HFPO.TrA_mean ~ TL_mean,
                                    data = Li_2021)

Li_2021_HFPOTrA_slope <- coef(Li_2021_lm_model_HFPOTrA)["TL_mean"]

summary(Li_2021_lm_model_HFPOTrA)
## 
## Call:
## lm(formula = log_HFPO.TrA_mean ~ TL_mean, data = Li_2021)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.0859 -0.1653  0.0324  0.4348  0.5844 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)
## (Intercept)   0.4541     0.6460   0.703    0.498
## TL_mean       0.2841     0.2002   1.419    0.186
## 
## Residual standard error: 0.5601 on 10 degrees of freedom
##   (68 observations deleted due to missingness)
## Multiple R-squared:  0.1677, Adjusted R-squared:  0.08444 
## F-statistic: 2.014 on 1 and 10 DF,  p-value: 0.1862
ggplot(Li_2021, aes(x = TL_mean, y = log_HFPO.TrA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "log [HFPOTrA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Li_2021_HFPOTrA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# PFO5DoA
Li_2021_lm_model_PFO5DoA <- lm(log_PFO5DoA_mean ~ TL_mean,
                                    data = Li_2021)

Li_2021_PFO5DoA_slope <- coef(Li_2021_lm_model_PFO5DoA)["TL_mean"]

summary(Li_2021_lm_model_PFO5DoA)
## 
## Call:
## lm(formula = log_PFO5DoA_mean ~ TL_mean, data = Li_2021)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.64644 -0.18210  0.05051  0.28434  0.40177 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  -2.8048     0.4239  -6.616 5.96e-05 ***
## TL_mean       0.7513     0.1315   5.714 0.000194 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.3681 on 10 degrees of freedom
##   (68 observations deleted due to missingness)
## Multiple R-squared:  0.7655, Adjusted R-squared:  0.7421 
## F-statistic: 32.65 on 1 and 10 DF,  p-value: 0.0001945
ggplot(Li_2021, aes(x = TL_mean, y = log_PFO5DoA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "log [PFO5DoA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Li_2021_PFO5DoA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# H-PFMO2OSA
Li_2021_lm_model_HPFMO2OSA <- lm(log_H.PFMO2OSA_mean ~ TL_mean,
                                    data = Li_2021)

Li_2021_HPFMO2OSA_slope <- coef(Li_2021_lm_model_HPFMO2OSA)["TL_mean"]

summary(Li_2021_lm_model_HPFMO2OSA)
## 
## Call:
## lm(formula = log_H.PFMO2OSA_mean ~ TL_mean, data = Li_2021)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.35963 -0.28453  0.00132  0.26375  0.39865 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  -1.7624     0.3559  -4.951 0.000577 ***
## TL_mean       0.4237     0.1102   3.843 0.003247 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.3096 on 10 degrees of freedom
##   (68 observations deleted due to missingness)
## Multiple R-squared:  0.5963, Adjusted R-squared:  0.556 
## F-statistic: 14.77 on 1 and 10 DF,  p-value: 0.003247
ggplot(Li_2021, aes(x = TL_mean, y = log_H.PFMO2OSA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "log [HPFMO2OSA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Li_2021_HPFMO2OSA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# PFOS
Li_2021_lm_model_PFOS <- lm(log_PFOS_mean ~ TL_mean,
                                    data = Li_2021)

Li_2021_PFOS_slope <- coef(Li_2021_lm_model_PFOS)["TL_mean"]

summary(Li_2021_lm_model_PFOS)
## 
## Call:
## lm(formula = log_PFOS_mean ~ TL_mean, data = Li_2021)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -0.3298 -0.1600  0.0072  0.1341  0.4334 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)  
## (Intercept)  0.07775    0.28087   0.277    0.788  
## TL_mean      0.21184    0.08690   2.438    0.035 *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.2436 on 10 degrees of freedom
##   (68 observations deleted due to missingness)
## Multiple R-squared:  0.3728, Adjusted R-squared:   0.31 
## F-statistic: 5.943 on 1 and 10 DF,  p-value: 0.03498
ggplot(Li_2021, aes(x = TL_mean, y = log_PFOS_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "log [PFOS]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Li_2021_PFOS_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# PFMOAA
Li_2021_lm_model_PFMOAA <- lm(log_PFMOAA_mean ~ TL_mean,
                                    data = Li_2021)

Li_2021_PFMOAA_slope <- coef(Li_2021_lm_model_PFMOAA)["TL_mean"]

summary(Li_2021_lm_model_PFMOAA)
## 
## Call:
## lm(formula = log_PFMOAA_mean ~ TL_mean, data = Li_2021)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.73024 -0.09999  0.02142  0.11323  1.87431 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)  
## (Intercept)   4.1747     1.7081   2.444   0.0403 *
## TL_mean      -0.5879     0.4960  -1.185   0.2699  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.935 on 8 degrees of freedom
##   (70 observations deleted due to missingness)
## Multiple R-squared:  0.1494, Adjusted R-squared:  0.04305 
## F-statistic: 1.405 on 1 and 8 DF,  p-value: 0.2699
ggplot(Li_2021, aes(x = TL_mean, y = log_PFMOAA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "log [PFMOAA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Li_2021_PFMOAA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# PFBA
Li_2021_lm_model_PFBA <- lm(log_PFBA_mean ~ TL_mean,
                                    data = Li_2021)

Li_2021_PFBA_slope <- coef(Li_2021_lm_model_PFBA)["TL_mean"]

summary(Li_2021_lm_model_PFBA)
## 
## Call:
## lm(formula = log_PFBA_mean ~ TL_mean, data = Li_2021)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.91289 -0.30435 -0.03787  0.10775  1.43887 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)  
## (Intercept)   2.3740     1.1921   1.991   0.0816 .
## TL_mean      -0.4423     0.3456  -1.280   0.2365  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.6476 on 8 degrees of freedom
##   (70 observations deleted due to missingness)
## Multiple R-squared:  0.1699, Adjusted R-squared:  0.06615 
## F-statistic: 1.638 on 1 and 8 DF,  p-value: 0.2365
ggplot(Li_2021, aes(x = TL_mean, y = log_PFBA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "log [PFBA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Li_2021_PFBA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

S_025: Pan_2021

  • It does not provide standard error or standard deviation values of individual observations. Weights cannot be assigned.
Pan_2021 <- read.csv(here("Rdata", "Pan_2021.csv"))

# 6:2 Cl-PFESA
Pan_2021_lm_model_62ClPFESA <- lm(log_62ClPFESA_mean ~ TL_mean,
                                    data = Pan_2021)

Pan_2021_62ClPFESA_slope <- coef(Pan_2021_lm_model_62ClPFESA)["TL_mean"]

summary(Pan_2021_lm_model_62ClPFESA)
## 
## Call:
## lm(formula = log_62ClPFESA_mean ~ TL_mean, data = Pan_2021)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.20704 -0.14161 -0.02182  0.13676  0.16199 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  -2.1075     0.1931 -10.916 6.45e-08 ***
## TL_mean       0.2529     0.0630   4.014  0.00147 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.1547 on 13 degrees of freedom
##   (30 observations deleted due to missingness)
## Multiple R-squared:  0.5534, Adjusted R-squared:  0.5191 
## F-statistic: 16.11 on 1 and 13 DF,  p-value: 0.001473
ggplot(Pan_2021, aes(x = TL_mean, y = log_62ClPFESA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "log [62ClPFESA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Pan_2021_62ClPFESA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# PFOS
Pan_2021_lm_model_PFOS <- lm(log_PFOS_mean ~ TL_mean,
                                    data = Pan_2021)

Pan_2021_PFOS_slope <- coef(Pan_2021_lm_model_PFOS)["TL_mean"]

summary(Pan_2021_lm_model_PFOS)
## 
## Call:
## lm(formula = log_PFOS_mean ~ TL_mean, data = Pan_2021)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.45246 -0.24331  0.03005  0.18397  0.63335 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)   
## (Intercept)  -1.0933     0.3408  -3.208  0.00334 **
## TL_mean       0.2452     0.1059   2.315  0.02817 * 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.2946 on 28 degrees of freedom
##   (15 observations deleted due to missingness)
## Multiple R-squared:  0.1606, Adjusted R-squared:  0.1307 
## F-statistic: 5.359 on 1 and 28 DF,  p-value: 0.02817
ggplot(Pan_2021, aes(x = TL_mean, y = log_PFOS_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "Trophic level",
       y = "log [PFOS]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Pan_2021_PFOS_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

S_059: Jiao_2023

  • It does not provide standard error or standard deviation values of individual observations. Weights cannot be assigned.
Jiao_2023_blood <- read.csv(here("Rdata", "Jiao_2023_blood.csv"))

# PFDA
Jiao_2023_blood_lm_model_PFDA <- lm(ln_PFDA_mean ~ delta_15N_mean,
                                    data = Jiao_2023_blood)

Jiao_2023_blood_PFDA_slope <- coef(Jiao_2023_blood_lm_model_PFDA)["delta_15N_mean"]

summary(Jiao_2023_blood_lm_model_PFDA)
## 
## Call:
## lm(formula = ln_PFDA_mean ~ delta_15N_mean, data = Jiao_2023_blood)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.9485 -0.8834 -0.1819  1.0004  1.9293 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)
## (Intercept)     -1.5117     2.7998  -0.540    0.602
## delta_15N_mean   0.3034     0.2488   1.219    0.254
## 
## Residual standard error: 1.388 on 9 degrees of freedom
##   (105 observations deleted due to missingness)
## Multiple R-squared:  0.1418, Adjusted R-squared:  0.04643 
## F-statistic: 1.487 on 1 and 9 DF,  p-value: 0.2537
ggplot(Jiao_2023_blood, aes(x = delta_15N_mean, y = ln_PFDA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "delta 15N",
       y = "ln [PFDA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Jiao_2023_blood_PFDA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# PFUnDA
Jiao_2023_blood_lm_model_PFUnDA <- lm(ln_PFUnDA_mean ~ delta_15N_mean,
                                    data = Jiao_2023_blood)

Jiao_2023_blood_PFUnDA_slope <- coef(Jiao_2023_blood_lm_model_PFUnDA)["delta_15N_mean"]

summary(Jiao_2023_blood_lm_model_PFUnDA)
## 
## Call:
## lm(formula = ln_PFUnDA_mean ~ delta_15N_mean, data = Jiao_2023_blood)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -4.7250 -0.6047 -0.0600  1.2075  2.6755 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)  
## (Intercept)     -3.9167     2.6573  -1.474   0.1746  
## delta_15N_mean   0.5057     0.2271   2.227   0.0529 .
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.087 on 9 degrees of freedom
##   (105 observations deleted due to missingness)
## Multiple R-squared:  0.3553, Adjusted R-squared:  0.2837 
## F-statistic:  4.96 on 1 and 9 DF,  p-value: 0.05294
ggplot(Jiao_2023_blood, aes(x = delta_15N_mean, y = ln_PFUnDA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "delta 15N",
       y = "ln [PFUnDA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Jiao_2023_blood_PFUnDA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# PFDoDA
Jiao_2023_blood_lm_model_PFDoDA <- lm(ln_PFDoDA_mean ~ delta_15N_mean,
                                    data = Jiao_2023_blood)

Jiao_2023_blood_PFDoDA_slope <- coef(Jiao_2023_blood_lm_model_PFDoDA)["delta_15N_mean"]

summary(Jiao_2023_blood_lm_model_PFDoDA)
## 
## Call:
## lm(formula = ln_PFDoDA_mean ~ delta_15N_mean, data = Jiao_2023_blood)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -5.4957  0.2035  0.5562  1.1635  2.7003 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)
## (Intercept)     -4.3056     3.4832  -1.236    0.248
## delta_15N_mean   0.3684     0.2873   1.282    0.232
## 
## Residual standard error: 2.45 on 9 degrees of freedom
##   (105 observations deleted due to missingness)
## Multiple R-squared:  0.1545, Adjusted R-squared:  0.06054 
## F-statistic: 1.644 on 1 and 9 DF,  p-value: 0.2318
ggplot(Jiao_2023_blood, aes(x = delta_15N_mean, y = ln_PFDoDA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "delta 15N",
       y = "ln [PFDoDA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Jiao_2023_blood_PFDoDA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# PFTrDA
Jiao_2023_blood_lm_model_PFTrDA <- lm(ln_PFTrDA_mean ~ delta_15N_mean,
                                    data = Jiao_2023_blood)

Jiao_2023_blood_PFTrDA_slope <- coef(Jiao_2023_blood_lm_model_PFTrDA)["delta_15N_mean"]

summary(Jiao_2023_blood_lm_model_PFTrDA)
## 
## Call:
## lm(formula = ln_PFTrDA_mean ~ delta_15N_mean, data = Jiao_2023_blood)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -5.9531 -0.3559  0.5952  1.4231  2.8866 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)
## (Intercept)     -4.6603     4.8647  -0.958    0.363
## delta_15N_mean   0.4555     0.3981   1.144    0.282
## 
## Residual standard error: 2.761 on 9 degrees of freedom
##   (105 observations deleted due to missingness)
## Multiple R-squared:  0.127,  Adjusted R-squared:  0.02996 
## F-statistic: 1.309 on 1 and 9 DF,  p-value: 0.2821
ggplot(Jiao_2023_blood, aes(x = delta_15N_mean, y = ln_PFTrDA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "delta 15N",
       y = "ln [PFTrDA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Jiao_2023_blood_PFTrDA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# PFOS
Jiao_2023_blood_lm_model_PFOS <- lm(ln_PFOS_mean ~ delta_15N_mean,
                                    data = Jiao_2023_blood)

Jiao_2023_blood_PFOS_slope <- coef(Jiao_2023_blood_lm_model_PFOS)["delta_15N_mean"]

summary(Jiao_2023_blood_lm_model_PFOS)
## 
## Call:
## lm(formula = ln_PFOS_mean ~ delta_15N_mean, data = Jiao_2023_blood)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.5588 -0.7950 -0.3385  0.6065  3.1227 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)   
## (Intercept)     -0.3299     1.2159  -0.271  0.79075   
## delta_15N_mean   0.3609     0.1088   3.319  0.00613 **
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.33 on 12 degrees of freedom
##   (102 observations deleted due to missingness)
## Multiple R-squared:  0.4785, Adjusted R-squared:  0.4351 
## F-statistic: 11.01 on 1 and 12 DF,  p-value: 0.006127
ggplot(Jiao_2023_blood, aes(x = delta_15N_mean, y = ln_PFOS_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "delta 15N",
       y = "ln [PFOS]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Jiao_2023_blood_PFOS_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# FOSA
Jiao_2023_blood_lm_model_FOSA <- lm(ln_FOSA_mean ~ delta_15N_mean,
                                    data = Jiao_2023_blood)

Jiao_2023_blood_FOSA_slope <- coef(Jiao_2023_blood_lm_model_FOSA)["delta_15N_mean"]

summary(Jiao_2023_blood_lm_model_FOSA)
## 
## Call:
## lm(formula = ln_FOSA_mean ~ delta_15N_mean, data = Jiao_2023_blood)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.0713 -1.2962 -0.0243  0.9772  4.4240 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)  
## (Intercept)     -5.1248     2.6092  -1.964   0.0779 .
## delta_15N_mean   0.6399     0.2198   2.911   0.0155 *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.038 on 10 degrees of freedom
##   (104 observations deleted due to missingness)
## Multiple R-squared:  0.4587, Adjusted R-squared:  0.4046 
## F-statistic: 8.475 on 1 and 10 DF,  p-value: 0.01553
ggplot(Jiao_2023_blood, aes(x = delta_15N_mean, y = ln_FOSA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "delta 15N",
       y = "ln [FOSA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Jiao_2023_blood_FOSA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# 62ClPFESA
Jiao_2023_blood_lm_model_62ClPFESA <- lm(ln_62ClPFESA_mean ~ delta_15N_mean,
                                    data = Jiao_2023_blood)

Jiao_2023_blood_62ClPFESA_slope <- coef(Jiao_2023_blood_lm_model_62ClPFESA)["delta_15N_mean"]

summary(Jiao_2023_blood_lm_model_62ClPFESA)
## 
## Call:
## lm(formula = ln_62ClPFESA_mean ~ delta_15N_mean, data = Jiao_2023_blood)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.9422 -1.0807  0.6322  0.8136  1.6094 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)    
## (Intercept)     -6.8421     1.2853  -5.323 0.000336 ***
## delta_15N_mean   0.7490     0.1151   6.506 6.84e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.323 on 10 degrees of freedom
##   (104 observations deleted due to missingness)
## Multiple R-squared:  0.8089, Adjusted R-squared:  0.7898 
## F-statistic: 42.33 on 1 and 10 DF,  p-value: 6.841e-05
ggplot(Jiao_2023_blood, aes(x = delta_15N_mean, y = ln_62ClPFESA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "delta 15N",
       y = "ln [6:2 ClPFESA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Jiao_2023_blood_62ClPFESA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# 82ClPFESA
Jiao_2023_blood_lm_model_82ClPFESA <- lm(ln_82ClPFESA_mean ~ delta_15N_mean,
                                    data = Jiao_2023_blood)

Jiao_2023_blood_82ClPFESA_slope <- coef(Jiao_2023_blood_lm_model_82ClPFESA)["delta_15N_mean"]

summary(Jiao_2023_blood_lm_model_82ClPFESA)
## 
## Call:
## lm(formula = ln_82ClPFESA_mean ~ delta_15N_mean, data = Jiao_2023_blood)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -4.2175 -0.9011 -0.3723  1.3603  4.0079 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)
## (Intercept)     -3.0330     4.1715  -0.727    0.488
## delta_15N_mean   0.3383     0.3445   0.982    0.355
## 
## Residual standard error: 2.348 on 8 degrees of freedom
##   (106 observations deleted due to missingness)
## Multiple R-squared:  0.1076, Adjusted R-squared:  -0.003972 
## F-statistic: 0.9644 on 1 and 8 DF,  p-value: 0.3548
ggplot(Jiao_2023_blood, aes(x = delta_15N_mean, y = ln_82ClPFESA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "delta 15N",
       y = "ln [8:2 ClPFESA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Jiao_2023_blood_82ClPFESA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# 102ClPFESA
Jiao_2023_blood_lm_model_102ClPFESA <- lm(ln_102ClPFESA_mean ~ delta_15N_mean,
                                    data = Jiao_2023_blood)

Jiao_2023_blood_102ClPFESA_slope <- coef(Jiao_2023_blood_lm_model_102ClPFESA)["delta_15N_mean"]

summary(Jiao_2023_blood_lm_model_102ClPFESA)
## 
## Call:
## lm(formula = ln_102ClPFESA_mean ~ delta_15N_mean, data = Jiao_2023_blood)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.3005 -1.5953 -0.7154  1.3045  4.0961 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)  
## (Intercept)     -6.5705     3.2223  -2.039   0.0688 .
## delta_15N_mean   0.5235     0.2710   1.932   0.0822 .
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.57 on 10 degrees of freedom
##   (104 observations deleted due to missingness)
## Multiple R-squared:  0.2718, Adjusted R-squared:  0.199 
## F-statistic: 3.733 on 1 and 10 DF,  p-value: 0.08216
ggplot(Jiao_2023_blood, aes(x = delta_15N_mean, y = ln_102ClPFESA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "delta 15N",
       y = "ln [10:2 ClPFESA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Jiao_2023_blood_102ClPFESA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# 103FTCA
Jiao_2023_blood_lm_model_103FTCA <- lm(ln_103FTCA_mean ~ delta_15N_mean,
                                    data = Jiao_2023_blood)

Jiao_2023_blood_103FTCA_slope <- coef(Jiao_2023_blood_lm_model_103FTCA)["delta_15N_mean"]

summary(Jiao_2023_blood_lm_model_103FTCA)
## 
## Call:
## lm(formula = ln_103FTCA_mean ~ delta_15N_mean, data = Jiao_2023_blood)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -6.483 -2.327  1.264  2.370  4.668 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)
## (Intercept)     -5.5428     4.7226  -1.174    0.268
## delta_15N_mean   0.5273     0.3998   1.319    0.217
## 
## Residual standard error: 3.722 on 10 degrees of freedom
##   (104 observations deleted due to missingness)
## Multiple R-squared:  0.1482, Adjusted R-squared:  0.06303 
## F-statistic:  1.74 on 1 and 10 DF,  p-value: 0.2166
ggplot(Jiao_2023_blood, aes(x = delta_15N_mean, y = ln_103FTCA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "delta 15N",
       y = "ln [10:3 FTCA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Jiao_2023_blood_103FTCA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

Jiao_2023_gill <- read.csv(here("Rdata", "Jiao_2023_gill.csv"))

# PFDA
Jiao_2023_gill_lm_model_PFDA <- lm(ln_PFDA_mean ~ delta_15N_mean,
                                    data = Jiao_2023_gill)

Jiao_2023_gill_PFDA_slope <- coef(Jiao_2023_gill_lm_model_PFDA)["delta_15N_mean"]

summary(Jiao_2023_gill_lm_model_PFDA)
## 
## Call:
## lm(formula = ln_PFDA_mean ~ delta_15N_mean, data = Jiao_2023_gill)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.9513 -0.5570 -0.1315  0.8475  3.6921 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)  
## (Intercept)     -5.2607     3.5614  -1.477   0.1779  
## delta_15N_mean   0.5783     0.2904   1.991   0.0816 .
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.032 on 8 degrees of freedom
##   (26 observations deleted due to missingness)
## Multiple R-squared:  0.3313, Adjusted R-squared:  0.2478 
## F-statistic: 3.964 on 1 and 8 DF,  p-value: 0.08164
ggplot(Jiao_2023_gill, aes(x = delta_15N_mean, y = ln_PFDA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "delta 15N",
       y = "ln [PFDA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Jiao_2023_gill_PFDA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# PFDoDA
Jiao_2023_gill_lm_model_PFDoDA <- lm(ln_PFDoDA_mean ~ delta_15N_mean,
                                    data = Jiao_2023_gill)

Jiao_2023_gill_PFDoDA_slope <- coef(Jiao_2023_gill_lm_model_PFDoDA)["delta_15N_mean"]

summary(Jiao_2023_gill_lm_model_PFDoDA)
## 
## Call:
## lm(formula = ln_PFDoDA_mean ~ delta_15N_mean, data = Jiao_2023_gill)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.2125 -0.9288  0.1388  0.8184  0.9794 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)
## (Intercept)      1.1670     2.1165   0.551    0.599
## delta_15N_mean   0.0886     0.1697   0.522    0.618
## 
## Residual standard error: 0.9274 on 7 degrees of freedom
##   (27 observations deleted due to missingness)
## Multiple R-squared:  0.03747,    Adjusted R-squared:   -0.1 
## F-statistic: 0.2725 on 1 and 7 DF,  p-value: 0.6178
ggplot(Jiao_2023_gill, aes(x = delta_15N_mean, y = ln_PFDoDA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "delta 15N",
       y = "ln [PFDoDA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Jiao_2023_gill_PFDoDA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# PFTrDA
Jiao_2023_gill_lm_model_PFTrDA <- lm(ln_PFTrDA_mean ~ delta_15N_mean,
                                    data = Jiao_2023_gill)

Jiao_2023_gill_PFTrDA_slope <- coef(Jiao_2023_gill_lm_model_PFTrDA)["delta_15N_mean"]

summary(Jiao_2023_gill_lm_model_PFTrDA)
## 
## Call:
## lm(formula = ln_PFTrDA_mean ~ delta_15N_mean, data = Jiao_2023_gill)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.0771 -0.1706  0.3035  0.4034  0.4712 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)
## (Intercept)      1.8281     1.5708   1.164    0.289
## delta_15N_mean   0.1236     0.1255   0.985    0.362
## 
## Residual standard error: 0.6786 on 6 degrees of freedom
##   (28 observations deleted due to missingness)
## Multiple R-squared:  0.1393, Adjusted R-squared:  -0.004163 
## F-statistic: 0.971 on 1 and 6 DF,  p-value: 0.3625
ggplot(Jiao_2023_gill, aes(x = delta_15N_mean, y = ln_PFTrDA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "delta 15N",
       y = "ln [PFTrDA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Jiao_2023_gill_PFTrDA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# 82ClPFESA
Jiao_2023_gill_lm_model_82ClPFESA <- lm(ln_82ClPFESA_mean ~ delta_15N_mean,
                                    data = Jiao_2023_gill)

Jiao_2023_gill_82ClPFESA_slope <- coef(Jiao_2023_gill_lm_model_82ClPFESA)["delta_15N_mean"]

summary(Jiao_2023_gill_lm_model_82ClPFESA)
## 
## Call:
## lm(formula = ln_82ClPFESA_mean ~ delta_15N_mean, data = Jiao_2023_gill)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2.28167 -1.20091  0.07748  1.30268  2.03560 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)
## (Intercept)      3.6232     3.7657   0.962    0.368
## delta_15N_mean  -0.1355     0.2975  -0.455    0.663
## 
## Residual standard error: 1.656 on 7 degrees of freedom
##   (27 observations deleted due to missingness)
## Multiple R-squared:  0.02878,    Adjusted R-squared:  -0.11 
## F-statistic: 0.2074 on 1 and 7 DF,  p-value: 0.6626
ggplot(Jiao_2023_gill, aes(x = delta_15N_mean, y = ln_82ClPFESA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "delta 15N",
       y = "ln [8:2 ClPFESA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Jiao_2023_gill_82ClPFESA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

Jiao_2023_heart <- read.csv(here("Rdata", "Jiao_2023_heart.csv"))

# PFDA
Jiao_2023_heart_lm_model_PFDA <- lm(ln_PFDA_mean ~ delta_15N_mean,
                                    data = Jiao_2023_heart)

Jiao_2023_heart_PFDA_slope <- coef(Jiao_2023_heart_lm_model_PFDA)["delta_15N_mean"]

summary(Jiao_2023_heart_lm_model_PFDA)
## 
## Call:
## lm(formula = ln_PFDA_mean ~ delta_15N_mean, data = Jiao_2023_heart)
## 
## Residuals:
##        1        2        3        4        5        6        7 
##  0.22439 -0.41495 -0.54878  1.07947  0.14027 -0.08531 -0.39508 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)  
## (Intercept)     3.33447    1.44227   2.312   0.0687 .
## delta_15N_mean -0.03311    0.11450  -0.289   0.7840  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.6119 on 5 degrees of freedom
##   (37 observations deleted due to missingness)
## Multiple R-squared:  0.01645,    Adjusted R-squared:  -0.1803 
## F-statistic: 0.08364 on 1 and 5 DF,  p-value: 0.784
ggplot(Jiao_2023_heart, aes(x = delta_15N_mean, y = ln_PFDA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "delta 15N",
       y = "ln [8:2 PFDA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Jiao_2023_heart_PFDA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# PFUnDA
Jiao_2023_heart_lm_model_PFUnDA <- lm(ln_PFUnDA_mean ~ delta_15N_mean,
                                    data = Jiao_2023_heart)

Jiao_2023_heart_PFUnDA_slope <- coef(Jiao_2023_heart_lm_model_PFUnDA)["delta_15N_mean"]

summary(Jiao_2023_heart_lm_model_PFUnDA)
## 
## Call:
## lm(formula = ln_PFUnDA_mean ~ delta_15N_mean, data = Jiao_2023_heart)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.77430 -0.25561  0.06962  0.25863  0.92137 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)  
## (Intercept)      3.1489     1.2404   2.539   0.0387 *
## delta_15N_mean   0.0336     0.0995   0.338   0.7455  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.5347 on 7 degrees of freedom
##   (35 observations deleted due to missingness)
## Multiple R-squared:  0.01603,    Adjusted R-squared:  -0.1245 
## F-statistic: 0.1141 on 1 and 7 DF,  p-value: 0.7455
ggplot(Jiao_2023_heart, aes(x = delta_15N_mean, y = ln_PFUnDA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "delta 15N",
       y = "ln [8:2 PFUnDA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Jiao_2023_heart_PFUnDA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# PFDoDA
Jiao_2023_heart_lm_model_PFDoDA <- lm(ln_PFDoDA_mean ~ delta_15N_mean,
                                    data = Jiao_2023_heart)

Jiao_2023_heart_PFDoDA_slope <- coef(Jiao_2023_heart_lm_model_PFDoDA)["delta_15N_mean"]

summary(Jiao_2023_heart_lm_model_PFDoDA)
## 
## Call:
## lm(formula = ln_PFDoDA_mean ~ delta_15N_mean, data = Jiao_2023_heart)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.14021 -0.34351  0.01224  0.53050  0.96394 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)
## (Intercept)     2.15976    1.69637   1.273    0.239
## delta_15N_mean  0.04931    0.13470   0.366    0.724
## 
## Residual standard error: 0.7383 on 8 degrees of freedom
##   (34 observations deleted due to missingness)
## Multiple R-squared:  0.01648,    Adjusted R-squared:  -0.1065 
## F-statistic: 0.134 on 1 and 8 DF,  p-value: 0.7238
ggplot(Jiao_2023_heart, aes(x = delta_15N_mean, y = ln_PFDoDA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "delta 15N",
       y = "ln [PFDoDA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Jiao_2023_heart_PFDoDA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# PFTrDA
Jiao_2023_heart_lm_model_PFTrDA <- lm(ln_PFTrDA_mean ~ delta_15N_mean,
                                    data = Jiao_2023_heart)

Jiao_2023_heart_PFTrDA_slope <- coef(Jiao_2023_heart_lm_model_PFTrDA)["delta_15N_mean"]

summary(Jiao_2023_heart_lm_model_PFTrDA)
## 
## Call:
## lm(formula = ln_PFTrDA_mean ~ delta_15N_mean, data = Jiao_2023_heart)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -0.8926 -0.4484  0.1651  0.3702  0.6632 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)
## (Intercept)      2.3425     1.3482   1.738    0.126
## delta_15N_mean   0.1179     0.1074   1.098    0.309
## 
## Residual standard error: 0.5874 on 7 degrees of freedom
##   (35 observations deleted due to missingness)
## Multiple R-squared:  0.1469, Adjusted R-squared:  0.02497 
## F-statistic: 1.205 on 1 and 7 DF,  p-value: 0.3087
ggplot(Jiao_2023_heart, aes(x = delta_15N_mean, y = ln_PFTrDA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "delta 15N",
       y = "ln [PFTrDA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Jiao_2023_heart_PFTrDA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# 62ClPFESA
Jiao_2023_heart_lm_model_62ClPFESA <- lm(ln_62ClPFESA_mean ~ delta_15N_mean,
                                    data = Jiao_2023_heart)

Jiao_2023_heart_62ClPFESA_slope <- coef(Jiao_2023_heart_lm_model_62ClPFESA)["delta_15N_mean"]

summary(Jiao_2023_heart_lm_model_62ClPFESA)
## 
## Call:
## lm(formula = ln_62ClPFESA_mean ~ delta_15N_mean, data = Jiao_2023_heart)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.3347 -0.2279  0.1028  0.7822  1.2291 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)  
## (Intercept)     -2.6456     1.9421  -1.362   0.2153  
## delta_15N_mean   0.4853     0.1586   3.060   0.0183 *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.152 on 7 degrees of freedom
##   (35 observations deleted due to missingness)
## Multiple R-squared:  0.5722, Adjusted R-squared:  0.511 
## F-statistic: 9.362 on 1 and 7 DF,  p-value: 0.01833
ggplot(Jiao_2023_heart, aes(x = delta_15N_mean, y = ln_62ClPFESA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "delta 15N",
       y = "ln [6:2 ClPFESA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Jiao_2023_heart_62ClPFESA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

Jiao_2023_kidney <- read.csv(here("Rdata", "Jiao_2023_kidney.csv"))

# PFUnDA
Jiao_2023_kidney_lm_model_PFUnDA <- lm(ln_PFUnDA_mean ~ delta_15N_mean,
                                    data = Jiao_2023_kidney)

Jiao_2023_kidney_PFUnDA_slope <- coef(Jiao_2023_kidney_lm_model_PFUnDA)["delta_15N_mean"]

summary(Jiao_2023_kidney_lm_model_PFUnDA)
## 
## Call:
## lm(formula = ln_PFUnDA_mean ~ delta_15N_mean, data = Jiao_2023_kidney)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.6179 -0.4968  0.2868  0.6245  0.9448 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)
## (Intercept)     3.83232    2.17506   1.762    0.121
## delta_15N_mean  0.00028    0.17168   0.002    0.999
## 
## Residual standard error: 0.9457 on 7 degrees of freedom
##   (16 observations deleted due to missingness)
## Multiple R-squared:  3.799e-07,  Adjusted R-squared:  -0.1429 
## F-statistic: 2.659e-06 on 1 and 7 DF,  p-value: 0.9987
ggplot(Jiao_2023_kidney, aes(x = delta_15N_mean, y = ln_PFUnDA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "delta 15N",
       y = "ln [PFUnDA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Jiao_2023_kidney_PFUnDA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# PFDoDA
Jiao_2023_kidney_lm_model_PFDoDA <- lm(ln_PFDoDA_mean ~ delta_15N_mean,
                                    data = Jiao_2023_kidney)

Jiao_2023_kidney_PFDoDA_slope <- coef(Jiao_2023_kidney_lm_model_PFDoDA)["delta_15N_mean"]

summary(Jiao_2023_kidney_lm_model_PFDoDA)
## 
## Call:
## lm(formula = ln_PFDoDA_mean ~ delta_15N_mean, data = Jiao_2023_kidney)
## 
## Residuals:
##      10      11      12      13      14      15      16 
## -0.3800  0.7300  0.8183  0.9064 -0.4192 -1.0168 -0.6386 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)
## (Intercept)     3.80465    2.11220   1.801    0.132
## delta_15N_mean -0.06733    0.16667  -0.404    0.703
## 
## Residual standard error: 0.8702 on 5 degrees of freedom
##   (18 observations deleted due to missingness)
## Multiple R-squared:  0.0316, Adjusted R-squared:  -0.1621 
## F-statistic: 0.1632 on 1 and 5 DF,  p-value: 0.703
ggplot(Jiao_2023_kidney, aes(x = delta_15N_mean, y = ln_PFDoDA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "delta 15N",
       y = "ln [PFDoDA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Jiao_2023_kidney_PFDoDA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# PFTrDA
Jiao_2023_kidney_lm_model_PFTrDA <- lm(ln_PFTrDA_mean ~ delta_15N_mean,
                                    data = Jiao_2023_kidney)

Jiao_2023_kidney_PFTrDA_slope <- coef(Jiao_2023_kidney_lm_model_PFTrDA)["delta_15N_mean"]

summary(Jiao_2023_kidney_lm_model_PFTrDA)
## 
## Call:
## lm(formula = ln_PFTrDA_mean ~ delta_15N_mean, data = Jiao_2023_kidney)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.5706 -0.2251  0.2534  0.3015  0.8134 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)
## (Intercept)     3.24614    1.73781   1.868    0.104
## delta_15N_mean  0.05048    0.13760   0.367    0.725
## 
## Residual standard error: 0.748 on 7 degrees of freedom
##   (16 observations deleted due to missingness)
## Multiple R-squared:  0.01887,    Adjusted R-squared:  -0.1213 
## F-statistic: 0.1346 on 1 and 7 DF,  p-value: 0.7245
ggplot(Jiao_2023_kidney, aes(x = delta_15N_mean, y = ln_PFTrDA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "delta 15N",
       y = "ln [PFTrDA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Jiao_2023_kidney_PFTrDA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

Jiao_2023_liver <- read.csv(here("Rdata", "Jiao_2023_liver.csv"))

# PFDA
Jiao_2023_liver_lm_model_PFDA <- lm(ln_PFDA_mean ~ delta_15N_mean,
                                    data = Jiao_2023_liver)

Jiao_2023_liver_PFDA_slope <- coef(Jiao_2023_liver_lm_model_PFDA)["delta_15N_mean"]

summary(Jiao_2023_liver_lm_model_PFDA)
## 
## Call:
## lm(formula = ln_PFDA_mean ~ delta_15N_mean, data = Jiao_2023_liver)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.0891 -1.0651 -0.2310  0.7079  3.2544 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)   
## (Intercept)     -6.4914     2.2780  -2.850  0.01910 * 
## delta_15N_mean   0.7180     0.1876   3.826  0.00405 **
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.612 on 9 degrees of freedom
##   (53 observations deleted due to missingness)
## Multiple R-squared:  0.6193, Adjusted R-squared:  0.577 
## F-statistic: 14.64 on 1 and 9 DF,  p-value: 0.00405
ggplot(Jiao_2023_liver, aes(x = delta_15N_mean, y = ln_PFDA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "delta 15N",
       y = "ln [PFDA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Jiao_2023_liver_PFDA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# PFUnDA
Jiao_2023_liver_lm_model_PFUnDA <- lm(ln_PFUnDA_mean ~ delta_15N_mean,
                                    data = Jiao_2023_liver)

Jiao_2023_liver_PFUnDA_slope <- coef(Jiao_2023_liver_lm_model_PFUnDA)["delta_15N_mean"]

summary(Jiao_2023_liver_lm_model_PFUnDA)
## 
## Call:
## lm(formula = ln_PFUnDA_mean ~ delta_15N_mean, data = Jiao_2023_liver)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.3759 -0.9360 -0.4813  0.7422  3.3797 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)   
## (Intercept)     -6.4163     2.4220  -2.649  0.02651 * 
## delta_15N_mean   0.7508     0.1999   3.756  0.00451 **
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.71 on 9 degrees of freedom
##   (53 observations deleted due to missingness)
## Multiple R-squared:  0.6106, Adjusted R-squared:  0.5673 
## F-statistic: 14.11 on 1 and 9 DF,  p-value: 0.004509
ggplot(Jiao_2023_liver, aes(x = delta_15N_mean, y = ln_PFUnDA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "delta 15N",
       y = "ln [PFUnDA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Jiao_2023_liver_PFUnDA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# PFDoDA
Jiao_2023_liver_lm_model_PFDoDA <- lm(ln_PFDoDA_mean ~ delta_15N_mean,
                                    data = Jiao_2023_liver)

Jiao_2023_liver_PFDoDA_slope <- coef(Jiao_2023_liver_lm_model_PFDoDA)["delta_15N_mean"]

summary(Jiao_2023_liver_lm_model_PFDoDA)
## 
## Call:
## lm(formula = ln_PFDoDA_mean ~ delta_15N_mean, data = Jiao_2023_liver)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.9904 -0.6670 -0.2602  0.4470  2.9158 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)   
## (Intercept)     -6.5156     2.0654  -3.155  0.01350 * 
## delta_15N_mean   0.6938     0.1704   4.071  0.00358 **
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.449 on 8 degrees of freedom
##   (54 observations deleted due to missingness)
## Multiple R-squared:  0.6744, Adjusted R-squared:  0.6337 
## F-statistic: 16.57 on 1 and 8 DF,  p-value: 0.003578
ggplot(Jiao_2023_liver, aes(x = delta_15N_mean, y = ln_PFDoDA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "delta 15N",
       y = "ln [PFDoDA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Jiao_2023_liver_PFDoDA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# PFTrDA
Jiao_2023_liver_lm_model_PFTrDA <- lm(ln_PFTrDA_mean ~ delta_15N_mean,
                                    data = Jiao_2023_liver)

Jiao_2023_liver_PFTrDA_slope <- coef(Jiao_2023_liver_lm_model_PFTrDA)["delta_15N_mean"]

summary(Jiao_2023_liver_lm_model_PFTrDA)
## 
## Call:
## lm(formula = ln_PFTrDA_mean ~ delta_15N_mean, data = Jiao_2023_liver)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.1526 -0.6326 -0.1307  0.3852  3.0592 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)   
## (Intercept)     -7.0093     2.0954  -3.345  0.01015 * 
## delta_15N_mean   0.8100     0.1749   4.631  0.00169 **
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.463 on 8 degrees of freedom
##   (54 observations deleted due to missingness)
## Multiple R-squared:  0.7283, Adjusted R-squared:  0.6944 
## F-statistic: 21.45 on 1 and 8 DF,  p-value: 0.001686
ggplot(Jiao_2023_liver, aes(x = delta_15N_mean, y = ln_PFTrDA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "delta 15N",
       y = "ln [PFTrDA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Jiao_2023_liver_PFTrDA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# 62ClPFESA
Jiao_2023_liver_lm_model_62ClPFESA <- lm(ln_62ClPFESA_mean ~ delta_15N_mean,
                                    data = Jiao_2023_liver)

Jiao_2023_liver_62ClPFESA_slope <- coef(Jiao_2023_liver_lm_model_62ClPFESA)["delta_15N_mean"]

summary(Jiao_2023_liver_lm_model_62ClPFESA)
## 
## Call:
## lm(formula = ln_62ClPFESA_mean ~ delta_15N_mean, data = Jiao_2023_liver)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.0695 -0.4632  0.1257  0.2567  1.8627 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)  
## (Intercept)     0.03825    1.59778   0.024   0.9814  
## delta_15N_mean  0.34264    0.13189   2.598   0.0288 *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.136 on 9 degrees of freedom
##   (53 observations deleted due to missingness)
## Multiple R-squared:  0.4285, Adjusted R-squared:  0.365 
## F-statistic: 6.749 on 1 and 9 DF,  p-value: 0.02884
ggplot(Jiao_2023_liver, aes(x = delta_15N_mean, y = ln_62ClPFESA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "delta 15N",
       y = "ln [6:2 ClPFESA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Jiao_2023_liver_62ClPFESA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# 82ClPFESA
Jiao_2023_liver_lm_model_82ClPFESA <- lm(ln_82ClPFESA_mean ~ delta_15N_mean,
                                    data = Jiao_2023_liver)

Jiao_2023_liver_82ClPFESA_slope <- coef(Jiao_2023_liver_lm_model_82ClPFESA)["delta_15N_mean"]

summary(Jiao_2023_liver_lm_model_82ClPFESA)
## 
## Call:
## lm(formula = ln_82ClPFESA_mean ~ delta_15N_mean, data = Jiao_2023_liver)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.3520 -1.3920 -0.3272  1.1658  3.7963 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)  
## (Intercept)     -6.0501     2.8319  -2.136   0.0614 .
## delta_15N_mean   0.6803     0.2333   2.916   0.0171 *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.01 on 9 degrees of freedom
##   (53 observations deleted due to missingness)
## Multiple R-squared:  0.4858, Adjusted R-squared:  0.4287 
## F-statistic: 8.504 on 1 and 9 DF,  p-value: 0.01714
ggplot(Jiao_2023_liver, aes(x = delta_15N_mean, y = ln_82ClPFESA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "delta 15N",
       y = "ln [8:2 ClPFESA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Jiao_2023_liver_82ClPFESA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

Jiao_2023_muscle <- read.csv(here("Rdata", "Jiao_2023_muscle.csv"))

# PFDoDA
Jiao_2023_muscle_lm_model_PFDoDA <- lm(ln_PFDoDA_mean ~ delta_15N_mean,
                                    data = Jiao_2023_muscle)

Jiao_2023_muscle_PFDoDA_slope <- coef(Jiao_2023_muscle_lm_model_PFDoDA)["delta_15N_mean"]

summary(Jiao_2023_muscle_lm_model_PFDoDA)
## 
## Call:
## lm(formula = ln_PFDoDA_mean ~ delta_15N_mean, data = Jiao_2023_muscle)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.03159 -0.76392 -0.01856  0.56099  1.60137 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)
## (Intercept)     1.95680    2.14355   0.913    0.392
## delta_15N_mean -0.06564    0.16930  -0.388    0.710
## 
## Residual standard error: 0.9253 on 7 degrees of freedom
##   (24 observations deleted due to missingness)
## Multiple R-squared:  0.02102,    Adjusted R-squared:  -0.1188 
## F-statistic: 0.1503 on 1 and 7 DF,  p-value: 0.7098
ggplot(Jiao_2023_muscle, aes(x = delta_15N_mean, y = ln_PFDoDA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "delta 15N",
       y = "ln [PFDoDA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Jiao_2023_muscle_PFDoDA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# PFTrDA
Jiao_2023_muscle_lm_model_PFTrDA <- lm(ln_PFTrDA_mean ~ delta_15N_mean,
                                    data = Jiao_2023_muscle)

Jiao_2023_muscle_PFTrDA_slope <- coef(Jiao_2023_muscle_lm_model_PFTrDA)["delta_15N_mean"]

summary(Jiao_2023_muscle_lm_model_PFTrDA)
## 
## Call:
## lm(formula = ln_PFTrDA_mean ~ delta_15N_mean, data = Jiao_2023_muscle)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.94831 -0.74944 -0.02414  0.39733  2.02594 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)  
## (Intercept)     -1.3150     1.6215  -0.811   0.4363  
## delta_15N_mean   0.2806     0.1314   2.135   0.0585 .
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.93 on 10 degrees of freedom
##   (21 observations deleted due to missingness)
## Multiple R-squared:  0.3132, Adjusted R-squared:  0.2445 
## F-statistic:  4.56 on 1 and 10 DF,  p-value: 0.05849
ggplot(Jiao_2023_muscle, aes(x = delta_15N_mean, y = ln_PFTrDA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "delta 15N",
       y = "ln [PFTrDA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Jiao_2023_muscle_PFTrDA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# 62ClPFESA
Jiao_2023_muscle_lm_model_62ClPFESA <- lm(ln_62ClPFESA_mean ~ delta_15N_mean,
                                    data = Jiao_2023_muscle)

Jiao_2023_muscle_62ClPFESA_slope <- coef(Jiao_2023_muscle_lm_model_62ClPFESA)["delta_15N_mean"]

summary(Jiao_2023_muscle_lm_model_62ClPFESA)
## 
## Call:
## lm(formula = ln_62ClPFESA_mean ~ delta_15N_mean, data = Jiao_2023_muscle)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.27143 -0.75178 -0.06873  0.90211  1.44098 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)  
## (Intercept)     -1.8798     1.2751  -1.474   0.1712  
## delta_15N_mean   0.2668     0.1078   2.476   0.0328 *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.002 on 10 degrees of freedom
##   (21 observations deleted due to missingness)
## Multiple R-squared:   0.38,  Adjusted R-squared:  0.318 
## F-statistic: 6.129 on 1 and 10 DF,  p-value: 0.03278
ggplot(Jiao_2023_muscle, aes(x = delta_15N_mean, y = ln_62ClPFESA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "delta 15N",
       y = "ln [6:2 ClPFESA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Jiao_2023_muscle_62ClPFESA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

Jiao_2023_pancreas <- read.csv(here("Rdata", "Jiao_2023_pancreas.csv"))

# PFUnDA
Jiao_2023_pancreas_lm_model_PFUnDA <- lm(ln_PFUnDA_mean ~ delta_15N_mean,
                                    data = Jiao_2023_pancreas)

Jiao_2023_pancreas_PFUnDA_slope <- coef(Jiao_2023_pancreas_lm_model_PFUnDA)["delta_15N_mean"]

summary(Jiao_2023_pancreas_lm_model_PFUnDA)
## 
## Call:
## lm(formula = ln_PFUnDA_mean ~ delta_15N_mean, data = Jiao_2023_pancreas)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.3888 -0.7156  0.2062  0.6493  1.1620 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)
## (Intercept)      1.0299     2.2383   0.460    0.662
## delta_15N_mean   0.1853     0.1775   1.044    0.337
## 
## Residual standard error: 0.9733 on 6 degrees of freedom
##   (16 observations deleted due to missingness)
## Multiple R-squared:  0.1537, Adjusted R-squared:  0.01267 
## F-statistic:  1.09 on 1 and 6 DF,  p-value: 0.3367
ggplot(Jiao_2023_pancreas, aes(x = delta_15N_mean, y = ln_PFUnDA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "delta 15N",
       y = "ln [PFUnDA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Jiao_2023_pancreas_PFUnDA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# PFTrDA
Jiao_2023_pancreas_lm_model_PFTrDA <- lm(ln_PFTrDA_mean ~ delta_15N_mean,
                                    data = Jiao_2023_pancreas)

Jiao_2023_pancreas_PFTrDA_slope <- coef(Jiao_2023_pancreas_lm_model_PFTrDA)["delta_15N_mean"]

summary(Jiao_2023_pancreas_lm_model_PFTrDA)
## 
## Call:
## lm(formula = ln_PFTrDA_mean ~ delta_15N_mean, data = Jiao_2023_pancreas)
## 
## Residuals:
##        9       10       11       12       13       14       15 
## -0.41280  1.18172  0.51347  0.46982  0.17417  0.01981 -1.94619 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)
## (Intercept)      0.7993     1.5771   0.507    0.634
## delta_15N_mean   0.2606     0.1341   1.944    0.110
## 
## Residual standard error: 1.083 on 5 degrees of freedom
##   (17 observations deleted due to missingness)
## Multiple R-squared:  0.4304, Adjusted R-squared:  0.3165 
## F-statistic: 3.778 on 1 and 5 DF,  p-value: 0.1095
ggplot(Jiao_2023_pancreas, aes(x = delta_15N_mean, y = ln_PFTrDA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "delta 15N",
       y = "ln [PFTrDA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Jiao_2023_pancreas_PFTrDA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

# 62ClPFESA
Jiao_2023_pancreas_lm_model_62ClPFESA <- lm(ln_62ClPFESA_mean ~ delta_15N_mean,
                                            data = Jiao_2023_pancreas)

Jiao_2023_pancreas_62ClPFESA_slope <- coef(Jiao_2023_pancreas_lm_model_62ClPFESA)["delta_15N_mean"]

summary(Jiao_2023_pancreas_lm_model_62ClPFESA)
## 
## Call:
## lm(formula = ln_62ClPFESA_mean ~ delta_15N_mean, data = Jiao_2023_pancreas)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.3829 -0.4758  0.1030  0.7134  0.8250 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)  
## (Intercept)    -0.59187    1.17773  -0.503   0.6307  
## delta_15N_mean  0.29634    0.09858   3.006   0.0198 *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.8242 on 7 degrees of freedom
##   (15 observations deleted due to missingness)
## Multiple R-squared:  0.5635, Adjusted R-squared:  0.5011 
## F-statistic: 9.035 on 1 and 7 DF,  p-value: 0.01978
ggplot(Jiao_2023_pancreas, aes(x = delta_15N_mean, y = ln_62ClPFESA_mean)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 0.5) +
  labs(x = "delta 15N",
       y = "ln [6:2 ClPFESA]") +
  theme_minimal() +
  annotate("text", x = Inf, y = Inf, label = paste("slope =", round(Jiao_2023_pancreas_62ClPFESA_slope, 3)), 
           hjust = 3, vjust = 5.5, size = 4, color = "red")

References

  • Barghi_2018: Barghi, M., Jin, X., Lee, S., Jeong, Y., Yu, J. P., Paek, W. K., & Moon, H. B. (2018). Accumulation and exposure assessment of persistent chlorinated and fluorinated contaminants in Korean birds. Science of The Total Environment, 645, 220-228.
  • Cara_2022: Cara, B., Lies, T., Thimo, G., Robin, L., & Lieven, B. (2022). Bioaccumulation and trophic transfer of perfluorinated alkyl substances (PFAS) in marine biota from the Belgian North Sea: distribution and human health risk implications. Environmental Pollution, 311, 119907.